gpt4 book ai didi

MySQL 对日期和 BETWEEN 的陌生感

转载 作者:行者123 更新时间:2023-11-29 01:46:47 26 4
gpt4 key购买 nike

我正在运行查询以获取介于特定日期(本例中为当前日期和 7 天前)之间的行。

我试着把它写成:

SELECT * 
FROM faulttracker.ft_v_cases
WHERE DATE(cs_created) BETWEEN DATE(NOW()) AND DATE(NOW()-INTERVAL 7 DAY)
ORDER BY cs_created DESC;

但它返回了 0 行。我不明白为什么它不起作用,我尝试将其重写为:

SELECT * 
FROM faulttracker.ft_v_cases
WHERE DATE(cs_created) <= DATE(NOW())
AND DATE(cs_created) >= DATE(NOW()-INTERVAL 7 DAY)
ORDER BY cs_created DESC;

哪个确实有效。

为什么第一个返回 0 行,但第二个按预期工作?据我所知,它们在功能上应该是等价的。

cs_created 是一个日期时间。

最佳答案

根据documentation , BETWEEN 需要以下格式:

 expr BETWEEN min AND max

在您的第一个示例中,您将最小值放在最后。

尝试使用:

SELECT * 
FROM faulttracker.ft_v_cases
WHERE DATE(cs_created) BETWEEN DATE(NOW()-INTERVAL 7 DAY) AND DATE(NOW())
ORDER BY cs_created DESC;

关于MySQL 对日期和 BETWEEN 的陌生感,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4932982/

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