week
指定された日付の週番号を返します。この関数は MySQL の WEEK 関数と同じ方法で動作します。
この関数は v2.3 からサポートされています。
Syntax
INT WEEK(DATETIME|DATE date, INT mode)
Parameters
-
Date
: サポートされているデータ型は DATETIME と DATE です。 -
Mode
: 任意。サポートされているデータ型は INT です。このパラメーターは週番号を計算するロジックを指定するために使用されます。つまり、週が日曜日または月曜日に始まるかどうか、および返される値が 0–53 または 1–53 の範囲にあるかどうかを指定します。 値の範囲: 0–7。デフォルト値:0
。このパラメーターが指定されていない場合、デフォルトでモード0
が使用されます。以下の表は、このパラメーターの動作を説明しています。
Mode | 週の最初の日 | 範囲 | 週 1 は最初の週 … |
---|---|---|---|
0 | 日曜日 | 0-53 | その年に日曜日が含まれる週 |
1 | 月曜日 | 0-53 | その年に 4 日以上含まれる週 |
2 | 日曜日 | 1-53 | その年に日曜日が含まれる週 |
3 | 月曜日 | 1-53 | その年に 4 日以上含まれる週 |
4 | 日曜日 | 0-53 | その年に 4 日以上含まれる週 |
5 | 月曜日 | 0-53 | その年に月曜日が含まれる週 |
6 | 日曜日 | 1-53 | その年に 4 日以上含まれる週 |
7 | 月曜日 | 1-53 | その年に月曜日が含まれる週 |
Return value
INT 型の値を返します。値の範囲: 0–53。具体的な範囲は mode
パラメーターに基づいて決定されます。date
の値が無効または入力値が空の場合、NULL
が返されます。
Examples
2007-01-01
の週番号を計算します。2007-01-01
はカレンダー上で月曜日です。
Mode
が0
に設定され、0
が返されます。週は日曜日から始まります。2007-01-01
は月曜日であり、週 1 にはなりません。したがって、0
が返されます。
mysql> SELECT WEEK('2007-01-01', 0);
+-----------------------+
| week('2007-01-01', 0) |
+-----------------------+
| 0 |
+-----------------------+
1 row in set (0.02 sec)
Mode
が1
に設定され、1
が返されます。週は月曜日から始まり、2007-01-01
は月曜日です。
mysql> SELECT WEEK('2007-01-01', 1);
+-----------------------+
| week('2007-01-01', 1) |
+-----------------------+
| 1 |
+-----------------------+
1 row in set (0.02 sec)
Mode
が2
に設定され、53
が返されます。週は日曜日から始まります。しかし、2007-01-01
は月曜日であり、値の範囲は 1–53 です。したがって、53
が返され、これは前年の最後の週を示しています。
mysql> SELECT WEEK('2007-01-01', 2);
+-----------------------+
| week('2007-01-01', 2) |
+-----------------------+
| 53 |
+-----------------------+
1 row in set (0.01 sec)