以下两个日期的YEARWEEK为什么不同? 两个日期(2018-12-29和2018-12-30)都在同一周?
SELECT YEARWEEK('2018-12-29 20:10:00'); = 201851
SELECT CURDATE(); = 2018-12-30
SELECT YEARWEEK(CURDATE()); = 201852
答案 0 :(得分:2)
YEARWEEK
和WEEK
的默认操作模式由default_week_format
系统变量设置,默认为0,在该模式下,假定周从星期日开始。要基于从星期一开始的几周进行计算(以使2018-12-29和2018-12-30在同一周),请使用manual中描述的其中一种支持以下模式: 3、5和7)。例如
SELECT YEARWEEK('2018-12-29 20:10:00', 1), YEARWEEK('2018-12-30', 1)
输出:
201852 201852
答案 1 :(得分:0)
考虑
SELECT YEARWEEK('2018-01-06'); returns 201753 -- saturday
SELECT YEARWEEK('2018-01-07'); returns 201801 -- sunday
而2018-01-06
似乎返回201801
。
返回给定日期的年和周数(0到53之间的数字),查找以每个星期六结束的整(完整)周。在即将到来的星期日迭代到下一个值