次のルールを使用して、特定の日付の週番号と年を MySQL から取得したいと思います。
- 日付が年末で、翌年の最初の週である場合、週番号として 1 を返す必要があります。
- 日付が年の初めで、前年の最後の週である場合、週番号として 52 (または 53) を返す必要があります。
MySQL で week 関数を読みましたが、必要な結果が得られません。
私はフランスのカレンダーにいるので、月曜日に週を開始する必要があり、第 1 週は今年の 3 日以上の最初の週です。
したがって、オプション 1 と 3 しか使用できません。
次のクエリを書くと:
週を選択 ('2012-12-31', 3)、結果は 1
週を選択 ('2012-12-31', 1)、結果は 53
2016 年 1 月 1 日にテストすると、次のようになります。
週を選択 ('2016-1-1', 3)、結果は 53
週を選択 ('2016-1-1', 1)、結果は 0
2012-12-31 が翌年であることを検出できないため、オプション 1 は使用できません。
オプション 3 を使用することもできますが、2 つのロジックを追加しています。週番号 = 1 で月 = 12 の場合は年 + 1、週番号 = 53 で月 = 1 の場合は年 - 1 です。
誰かがより良い解決策を持っていますか?
よろしく