关于 php:MySQL 选择所有超过 10 天的条目

MySQL select all the entries older than 10 days

大家好,我正在开发一个小脚本,它必须检查 MySQL 数据库中的条目是否至少早于 10 天。
该表有一个时间戳字段(这是我想使用的,但如果需要我可以更改它)。
实际上我正在使用这个 sql 字符串:

1
2
3
4
SELECT *
FROM entries
WHERE tag='$tag'
  AND DATE(last_update) > DATE_SUB(CURDATE(), INTERVAL 10 DAY)

但我发现一些选定的条目"年轻"于 10 天,所以也许我弄错了什么。
这是正确的方法还是更好地通过 PHP(而不是 MySQL 查询)检查它?

提前致谢。


older than 10 days 应该是 before 计算的日期。

1
2
SELECT * FROM entries
WHERE tag='$tag' AND DATE(last_update) < DATE_SUB(CURDATE(), INTERVAL 10 DAY)


你也可以使用 DATEDIFF():

1
2
3
4
SELECT *
FROM entries
WHERE tag='$tag'
AND DATEDIFF(CURDATE(), DATE(last_update)) > 10

您还可以考虑您的查询并添加负间隔值:

1
2
3
4
SELECT *
FROM entries
WHERE tag='$tag'
  AND DATE(last_update) > DATE_SUB(CURDATE(), INTERVAL -10 DAY)