Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的 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 开始。
SELECT * FROM data WHERE myDate >= now() - interval 24 hour
TIMEDIFF 返回一个时间值,并且与时间值的比较是有问题的。
将时间值更改为更容易测试的值,例如秒,会更清晰、更安全:
SELECT * FROM data WHERE time_to_sec(timediff(now(), myDate)) < 24 * 60 * 60;
这将起作用,并且很清楚您在做什么。