年周返回不同的结果

时间:2018-12-30 00:24:15

标签: mysql

以下两个日期的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

2 个答案:

答案 0 :(得分:2)

YEARWEEKWEEK的默认操作模式由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之间的数字),查找以每个星期六结束的整(完整)周。在即将到来的星期日迭代到下一个值