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

时间:2011-09-13 17:26:59

标签: mysql database

startTimestamp < date_sub(curdate(), interval 1 hour)

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

select * from table where startTimestamp < date_sub(curdate(), interval 1 hour);

1 个答案:

答案 0 :(得分:15)

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

startTimestamp >= date_sub(NOW(), interval 1 hour)

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

SELECT NOW(), date_sub(NOW(), interval 1 hour);
2011-09-13 12:28:53  2011-09-13 11:28:53

总之,您需要的是:

select * from table where startTimestamp >= date_sub(NOW(), interval 1 hour);