gpt4 book ai didi

mysql - sql week 关键字不包括年初的日子

转载 作者:行者123 更新时间:2023-11-29 23:16:25 24 4
gpt4 key购买 nike

我正在尝试获取一周中人们的生日。今天是 1 月 3 日。当我尝试获取本周的生日时,它不包括属于本周的 12 月生日。我的sql查询如下。这有什么问题吗?

select id, birth, full_name, mobile, email 
from house_holders
where Week(DATE_ADD( birth, INTERVAL year(NOW()) - year(birth) YEAR),1) = week(NOW(),1);

最佳答案

使用条件 Week(DATE_ADD(birth, INTERVALyear(NOW()) -year(birth)YEAR),1) = week(NOW(),1); 你只会得到与今天相关的生日。

发生这种情况是因为 Week(DATE_ADD( '2014-12-29', INTERVALyear(NOW()) -year('2014-12-29') YEAR),1) 的结果53,而 week(NOW(),1); 的结果是 1,那么你永远不会得到你想要的结果想。事实上,像 '2014-12-29' 这样的日期会被视为 2014 年最后一周的一部分,而不是 2015 年最后一周的一部分。

如果您想获取本周的出生日期,您应该使用DATE_ADD()函数过滤出生日期DAYOFWEEK() 函数:

SELECT id, birth
FROM house_holders
WHERE birth >= DATE_ADD(CURDATE(), INTERVAL 1-DAYOFWEEK(CURDATE()) DAY)
AND birth <= DATE_ADD(CURDATE(), INTERVAL 7-DAYOFWEEK(CURDATE()) DAY);

查看演示 here .

关于mysql - sql week 关键字不包括年初的日子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27753997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com