0

我的 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 开始。

4

2 回答 2

1
SELECT *
FROM  data
WHERE myDate >= now() - interval 24 hour
于 2013-10-11T18:51:21.480 回答
0

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

将时间值更改为更容易测试的值,例如秒,会更清晰、更安全:

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

这将起作用,并且很清楚您在做什么。

于 2013-10-11T19:05:14.530 回答