gpt4 book ai didi

mysql - 日期间隔错误

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

我有一个表,其中有一个名为created DATETIME的列,当添加条目时它工作正常,但是当它到达日期间隔时,它会继续复制新条目。我正在尝试获取今天和昨天的条目。今天的工作正常,但是对于昨天的,它还在查询结果中添加了今天的内容,这不是我想要的。

SELECT * FROM tab WHERE created > DATE_SUB(NOW(), INTERVAL $num DAY) ORDER BY created DESC LIMIT 9;

$num 对于今天的条目来说是 1,对于昨天的条目来说是 2。因此基本上今天创建的条目会在昨天的查询结果中重复。

最佳答案

您正在从数据库中获取您请求的结果。即大于今天减去您输入的天数的任何记录。

当您尝试 @KenWhite 建议将 > 更改为 = 时,您得到 0 条记录的原因是因为您的字段是 DATETIME,因此从 NOW 中减去 24 小时( )产生昨天相同的确切时间,并且您可能没有在昨天这个时间精确写入的记录。对吗?

您需要做的是测试两个日期之间的记录以获得您想要的结果。切换到 CURDATE(),而不是 NOW(),这样您就可以放心获得您正在查找的日期时间范围内的每条记录。

SELECT *
FROM tab
WHERE
created BETWEEN DATE_SUB(CURDATE(), INTERVAL $num DAY) AND DATE_SUB(CURDATE(), INTERVAL $num - 1 DAY)
ORDER BY created DESC LIMIT 9;

您可以在此处查看 SQLFiddle:http://sqlfiddle.com/#!2/19d9b/12

关于mysql - 日期间隔错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26594226/

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