首页 > 解决方案 > 选择 - 24 小时后的行

问题描述

在我的数据库中,我有一列名为 dato_tid (Datatype = date)

现在我有 2 个帖子

1 日期为 2018-07-18 2 日期为 2018-07-20

我需要选择只有不到 24 小时的帖子

SELECT * FROM `udflyt` WHERE dato_tid > DATE_ADD(CURDATE(), INTERVAL -1 day)

此行将选择两个帖子

SELECT * FROM `udflyt` WHERE dato_tid > DATE_ADD(CURDATE(), INTERVAL -24 HOUR)

这也是如此,我确实尝试将 > 更改为 < 但相同。

SELECT * FROM `udflyt` WHERE dato_tid > (now() - interval 1 day )

此行也将获得两个帖子

那我需要做什么,谢谢

标签: phpmysqldate

解决方案


实际上,24 小时意味着你应该加一天,而不是减一天。

SELECT *
FROM `udflyt` 
WHERE dato_tid <= DATE_ADD(CURDATE(), INTERVAL +1 day);

将仅提供日期为“2018-07-18”的记录(我相信这就是您要查找的内容。

下面显示了用于进行加法和减法的比较的值。

SELECT *, DATE_ADD(CURDATE(), INTERVAL +1 day), DATE_ADD(CURDATE(), INTERVAL -1 day)
FROM `udflyt` 
WHERE dato_tid <= DATE_ADD(CURDATE(), INTERVAL +1 day);

推荐阅读