startTimestamp < date_sub(curdate(), interval 1 hour)
上面的(子)查询是否会返回在一小时内创建的所有记录?如果不是,有人请告诉我一个正确的吗?完整查询可能如下所示:
select * from table where startTimestamp < date_sub(curdate(), interval 1 hour);
答案 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);