我想从 MySQL 获取给定日期的周数和年份,并遵循以下规则:
- 如果日期是在年底,但在下一年的第一周,我需要返回 1 作为周数。
- 如果日期在年初,但在上一年的最后一周,我需要返回 52(或 53)作为周数。
我已经阅读了 MySQL 中的 week 函数,但我无法得到我想要的结果。
我在法国日历上,所以我必须从星期一开始一周,第一周是今年第一周超过 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
选项 1 不能使用,因为我无法检测到 2012-12-31 是在明年。
可以使用选项 3,但我有两个逻辑:如果 weeknumber = 1 和 month = 12,year + 1 并且如果 weeknumber = 53 和 month = 1 然后 year - 1
有人有更好的解决方案吗?
问候