选择一小时内创建的所有记录

tri*_*bal 7 mysql database

startTimestamp < date_sub(curdate(), interval 1 hour)
Run Code Online (Sandbox Code Playgroud)

上面的(子)查询是否会返回在一小时内创建的所有记录?如果不是,有人请告诉我一个正确的吗?完整查询可能如下所示:

select * from table where startTimestamp < date_sub(curdate(), interval 1 hour);
Run Code Online (Sandbox Code Playgroud)

Mic*_*ski 16

而不是CURDATE()使用NOW()和使用>=而不是<因为您希望时间戳大于一小时前的时间戳. CURDATE()仅返回日期部分,其中NOW()返回日期和时间.

startTimestamp >= date_sub(NOW(), interval 1 hour)
Run Code Online (Sandbox Code Playgroud)

例如,在我的时区,它是12:28

SELECT NOW(), date_sub(NOW(), interval 1 hour);
2011-09-13 12:28:53  2011-09-13 11:28:53
Run Code Online (Sandbox Code Playgroud)

总而言之,您需要的是:

select * from table where startTimestamp >= date_sub(NOW(), interval 1 hour);
Run Code Online (Sandbox Code Playgroud)