MySQL中的Timediff错误值

时间:2013-10-11 18:48:51

标签: php mysql datetime

我的PHP脚本需要一些帮助。 我有一个MySQL数据库,其中一列包含日期时间值,例如:

2013-10-11 10:41:00

现在我想要的是设置一个条件来获取最后24小时的所有值,所以我这样做了:

SELECT *
FROM  data
WHERE timediff(now(), myDate) < '24:00:00'

但出于某种原因,例如,现在它是2013-10-11 20:46,当我运行这个脚本时,我从2013-10-01 10:47:00一路走来的价值观。

2 个答案:

答案 0 :(得分:1)

SELECT *
FROM  data
WHERE myDate >= now() - interval 24 hour

答案 1 :(得分:0)

TIMEDIFF返回时间值,与时间值的比较是有问题的。

将时间值更改为您可以更轻松地测试的内容(例如秒数)更清晰,更安全:

SELECT *
FROM data
WHERE time_to_sec(timediff(now(), myDate)) < 24 * 60 * 60;

这将有效,很明显你在做什么。