当我跑步时: SELECT YEARWEEK('2018-09-11'); 它回来了 201836 .什么?当然,应该是第37周。我知道,有一个设置告诉mysql一周应该从哪一天开始,但那不是星期天就是星期一。今天是星期二,所以这不重要。有没有想过会发生什么?我正在centos 7服务器上使用mariadb 10.1.32。
SELECT YEARWEEK('2018-09-11');
201836
weylhg0b1#
您需要正确使用模式标志,这取决于您如何定义一年中的第一周
SELECT YEARWEEK('2018-09-12',0); -- 201836 SELECT YEARWEEK('2018-09-12',1); -- 201837 SELECT YEARWEEK('2018-09-12',2); -- 201836 SELECT YEARWEEK('2018-09-12',3); -- 201837 SELECT YEARWEEK('2018-09-12',4); -- 201837 SELECT YEARWEEK('2018-09-12',5); -- 201837 SELECT YEARWEEK('2018-09-12',6); -- 201837 SELECT YEARWEEK('2018-09-12',7); -- 201837
请参阅mysql文档
zf9nrax12#
在这种情况下,默认设置是使用[0]模式选项(显示“default\u week\u format”等变量),这意味着将考虑星期日。也指2018-09-08,返回36。为了让下周从周一开始,模式[1]。
frebpwbc3#
你应该看看这个网站作为参考:mysql yearweek()因此,您可以指定周的计数方式:第二个参数(可选)告诉您一周中的第一天是什么,以及应该包括多少天,例如:1-一周的第一天是星期一,第一周超过3天您可以尝试以下查询:
SELECT YEARWEEK('2018-09-11') union all SELECT YEARWEEK('2018-09-11', 1) union all SELECT YEARWEEK('2018-09-11', 3);
它返回:
201836 201837 201837
所以,你现在应该有一个感觉如何使用 YEARWEEK .演示。
YEARWEEK
3条答案
按热度按时间weylhg0b1#
您需要正确使用模式标志,这取决于您如何定义一年中的第一周
请参阅mysql文档
zf9nrax12#
在这种情况下,默认设置是使用[0]模式选项(显示“default\u week\u format”等变量),这意味着将考虑星期日。也指2018-09-08,返回36。为了让下周从周一开始,模式[1]。
frebpwbc3#
你应该看看这个网站作为参考:mysql yearweek()
因此,您可以指定周的计数方式:第二个参数(可选)告诉您一周中的第一天是什么,以及应该包括多少天,例如:
1-一周的第一天是星期一,第一周超过3天
您可以尝试以下查询:
它返回:
所以,你现在应该有一个感觉如何使用
YEARWEEK
.演示。