sql >> データベース >  >> RDS >> MariaDB

MariaDBでのWEEKOFYEAR()のしくみ

    MariaDBでは、WEEKOFYEAR() は、指定された日付の暦週を1の範囲の数値として返す組み込みの日付と時刻の関数です。 53へ 。

    WEEK()を使用するのと同じです モード3で機能するため、その結果はISO 8601:1988に準拠しています。

    1つの引数を受け入れます。週を抽出する日付。

    構文

    構文は次のようになります:

    WEEKOFYEAR(date)

    date は、暦週を取得する日付式です。

    次に例を示します:

    SELECT WEEKOFYEAR('2030-01-01');

    結果:

    +--------------------------+
    | WEEKOFYEAR('2030-01-01') |
    +--------------------------+
    |                        1 |
    +--------------------------+

    これは、次のことを行うのと同じです:

    SELECT WEEK('2030-01-01', 3);

    結果:

    +-----------------------+
    | WEEK('2030-01-01', 3) |
    +-----------------------+
    |                     1 |
    +-----------------------+

    日時の値

    WEEKOFYEAR() 関数は日時値でも機能します:

    SELECT WEEKOFYEAR('2030-08-01 10:30:45');

    結果:

    +-----------------------------------+
    | WEEKOFYEAR('2030-08-01 10:30:45') |
    +-----------------------------------+
    |                                31 |
    +-----------------------------------+

    数値日付

    日付として意味がある限り、日付を数値として渡すこともできます。

    SELECT WEEKOFYEAR(20301125);

    結果:

    +----------------------+
    | WEEKOFYEAR(20301125) |
    +----------------------+
    |                   48 |
    +----------------------+

    または、次の場合でも(2桁の年を使用):

    SELECT WEEKOFYEAR(301125);

    結果:

    +--------------------+
    | WEEKOFYEAR(301125) |
    +--------------------+
    |                 48 |
    +--------------------+

    しかし、それは日付として意味をなさなければなりません。日の部分を無効な日に増やすと、次のようになります。

    SELECT WEEKOFYEAR(20301135);

    結果:

    +----------------------+
    | WEEKOFYEAR(20301135) |
    +----------------------+
    |                 NULL |
    +----------------------+
    1 row in set, 1 warning (0.000 sec)

    nullを返しました 警告付き。

    警告を見てみましょう:

    SHOW WARNINGS;

    結果:

    +---------+------+--------------------------------------+
    | Level   | Code | Message                              |
    +---------+------+--------------------------------------+
    | Warning | 1292 | Incorrect datetime value: '20301135' |
    +---------+------+--------------------------------------+

    その他の区切り文字

    日付には他の区切り文字を使用できます。 MariaDBは、日付の区切り文字に関しては非常に寛容です。いくつかの有効な例を次に示します。

    SELECT 
        WEEKOFYEAR('2030/06/25'),
        WEEKOFYEAR('2030,06,25'),
        WEEKOFYEAR('2030:06:25'),
        WEEKOFYEAR('2030;06!25');

    結果(垂直出力を使用):

    WEEKOFYEAR('2030/06/25'): 26
    WEEKOFYEAR('2030,06,25'): 26
    WEEKOFYEAR('2030:06:25'): 26
    WEEKOFYEAR('2030;06!25'): 26

    現在の日付

    NOW()を渡すことができます 現在の日付を使用する日時引数として:

    SELECT 
        NOW(),
        WEEKOFYEAR(NOW());

    結果:

    +---------------------+-------------------+
    | NOW()               | WEEKOFYEAR(NOW()) |
    +---------------------+-------------------+
    | 2021-05-17 09:42:13 |                20 |
    +---------------------+-------------------+

    無効な引数

    無効な引数が渡されると、WEEKOFYEAR() nullを返します :

    SELECT WEEKOFYEAR('2030-65-78');

    結果:

    +--------------------------+
    | WEEKOFYEAR('2030-65-78') |
    +--------------------------+
    |                     NULL |
    +--------------------------+
    1 row in set, 1 warning (0.000 sec)

    警告を表示しましょう:

    SHOW WARNINGS;

    結果:

    +---------+------+----------------------------------------+
    | Level   | Code | Message                                |
    +---------+------+----------------------------------------+
    | Warning | 1292 | Incorrect datetime value: '2030-65-78' |
    +---------+------+----------------------------------------+

    引数がありません

    WEEKOFYEAR()を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:

    SELECT WEEKOFYEAR();

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'WEEKOFYEAR'

    そして別の例:

    SELECT WEEKOFYEAR('2030-12-10', 1);

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'WEEKOFYEAR'

    1. LinuxでデフォルトのMySQL/MariaDBデータディレクトリを変更する方法

    2. psqlを介してSQLスクリプトを実行すると、PgAdminでは発生しない構文エラーが発生します

    3. MySQLレプリケーション:GTIDベースのレプリケーションでの誤ったトランザクション

    4. phpを使用したutf-8のoracleからのデータ