メインコンテンツまでスキップ

week

week

説明

指定された日付の週番号を返します。この関数は、MySQLのWEEK関数と同様の方法で動作します。

この関数はv2.3からサポートされています。

構文

INT WEEK(DATETIME|DATE date, INT mode)

パラメータ

  • date: サポートされるデータ型はDATETIMEとDATEです。
  • mode: オプションです。サポートされるデータ型はINTです。このパラメータは、週番号の計算ロジックを指定するために使用されます。つまり、週の開始が日曜日または月曜日であり、返される値が0〜53または1〜53の範囲内かを指定します。値の範囲: 0〜7。デフォルト値: 0。このパラメータが指定されていない場合、デフォルトでモード0が使用されます。以下の表は、このパラメータの動作を説明しています。

モード

週の開始曜日

範囲

週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

その年の月曜日を含む

戻り値

INT型の値を返します。値の範囲: 0〜53。具体的な範囲はmodeパラメータに基づいて決定されます。dateの値が無効であるか、入力値が空の場合、NULLが返されます。

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)