54

MySQLのWEEK()機能のどのモードがISO8601週を生成しますか?の引数2はWEEK()、このチャートに従ってモードを設定します。

+--------------------------------------------------------------------+
| Mode | First day of week | Range | Week 1 is the first week ...    |
|------+-------------------+-------+---------------------------------|
| 0    | Sunday            | 0-53  | with a Sunday in this year      |
|------+-------------------+-------+---------------------------------|
| 1    | Monday            | 0-53  | with more than 3 days this year |
|------+-------------------+-------+---------------------------------|
| 2    | Sunday            | 1-53  | with a Sunday in this year      |
|------+-------------------+-------+---------------------------------|
| 3    | Monday            | 1-53  | with more than 3 days this year |
|------+-------------------+-------+---------------------------------|
| 4    | Sunday            | 0-53  | with more than 3 days this year |
|------+-------------------+-------+---------------------------------|
| 5    | Monday            | 0-53  | with a Monday in this year      |
|------+-------------------+-------+---------------------------------|
| 6    | Sunday            | 1-53  | with more than 3 days this year |
|------+-------------------+-------+---------------------------------|
| 7    | Monday            | 1-53  | with a Monday in this year      |
+--------------------------------------------------------------------+

これらのモードの1つは、ISO 8601の週を提供しますか?

4

4 に答える 4

78

ISO の週番号付けでは、月曜日が週の最初の日なので、それだけで奇数モードの 1 つに絞り込まれます。

ウィキペディアごと

第 01 週については、相互に同等の説明があります。

  • その年の最初の木曜日を含む週 (正式な ISO 定義)、
  • 1月4日を含む週、
  • 開始年の過半数 (4 日以上) の日を持つ最初の週、および
  • 12 月 29 日から 1 月 4 日までの期間の月曜日から始まる週。

これらの説明の 3 番目は、上の表の「今年は 3 日以上」と一致するため、1 か 3 のいずれかに絞り込みました。

最後に、引き続きウィキペディアから (強調を追加):

1 月 1 日が月曜日、火曜日、水曜日、または木曜日の場合は 01 週目です。1 月 1 日が金曜日、土曜日、または日曜日の場合は、前年の 52 週目または 53 週目です (00 週目はありません) 。 .

したがって、範囲は 0 ~ 53 ではなく、1 ~ 53 にする必要があります。これは、正しいモードがモード 3であることを意味します。

于 2012-08-03T22:22:11.510 に答える
1

ISO 8601の答えは mode です3

SELECT week(your_date_column, 3) FROM your_table
于 2021-01-05T17:43:41.427 に答える