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'