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);