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'