メインコンテンツまでスキップ
バージョン: Latest-3.4

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 はカレンダー上で月曜日です。

  • Mode0 に設定され、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)
  • Mode1 に設定され、1 が返されます。週は月曜日から始まり、2007-01-01 は月曜日です。
mysql> SELECT WEEK('2007-01-01', 1);
+-----------------------+
| week('2007-01-01', 1) |
+-----------------------+
| 1 |
+-----------------------+
1 row in set (0.02 sec)
  • Mode2 に設定され、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)