MySQL WEEK(FROM_UNIXTIME())给出了错误的结果

时间:2018-04-26 11:52:42

标签: mysql

WEEK(FROM_UNIXTIME(1525212000)) 

给出结果为17,但它应该是18

是MySQL中的错误还是我做错了什么?

mysql Ver 14.14 Distrib 5.7.18

示例查询

enter image description here

到目前为止的时间戳

enter image description here

使用在线版本检查日期

enter image description here

2 个答案:

答案 0 :(得分:1)

这一周可以在0-53的范围内,所以你只需要在结果中加1或者更好,然后用周期函数的第二个参数改变模式周数的计算方式。

WEEK(date[,mode])

查看本周函数的官方文档:https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week

  

如果省略mode参数,则为default_week_format的值   使用系统变量

答案 1 :(得分:0)

我认为最好选择使用WEEKOFYEAR函数而不是WEEK函数

  

WEEKOFYEAR(date)以数字形式返回日期的日历周   范围从1到53. WEEKOFYEAR()是兼容性功能   相当于WEEK(日期,3)。

来源:https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_weekofyear