SQL道場 日付時刻関数 WEEK関数

SQLで年間の通算週を取得するWEEK関数について記載しています。

対応データベース:MySQL DB2

WEEK関数の文法

SELECT WEEK(日付) FROM テーブル
SELECT WEEK(日付 |,週の開始と戻り値) FROM テーブル
引数日付文字列型
週の開始と戻り値数値型
返値数値型 年間の通算週が数値で戻ります。

WEEK関数は年間の通算週を取得します。引数の「日付」に対応する週番号を返します。 2 つの引数を取る形式の WEEK() を使用すると、週が日曜日と月曜日のどちらから始まるのか、および戻り値が 0 から 53までと 1 から 53 までのどちらの範囲内であるのかを指定できます。 mode 引数が省略された場合は、default_week_format システム変数の値が使用されます。 セクション5.1.8「サーバーシステム変数」を参照してください。

MySQLではオプションに週の開始と戻り値として下記の値を指定できます。

公式サイト

数字周の1日目範囲第 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本年の月曜日を含む

実行例

MySQLの実行例

/* MySQL 週の開始が月曜日として、2023/12/31の年間の通算週を取得するサンプル */
SELECT WEEK('2023-12-31',1);
WEEK関数サンプル実行結果