查找过去24小时内带有日期字段的记录

时间:2011-11-10 12:41:50

标签: mysql sql date

在我的SQL查询中如何让它在过去24小时内找到记录? 例如

   SELECT * FROM news WHERE date < 24 hours

我通常通过将变量设置为date() - 1天并将其与之比较来实现,但我想知道sql查询方式是否更快?

7 个答案:

答案 0 :(得分:111)

您只需选择高于当前时间减去1天的日期。

SELECT * FROM news WHERE date >= now() - INTERVAL 1 DAY;

答案 1 :(得分:58)

SELECT * FROM news WHERE date > DATE_SUB(NOW(), INTERVAL 24 HOUR)

答案 2 :(得分:9)

SELECT * from new WHERE date < DATE_ADD(now(),interval -1 day);

答案 3 :(得分:7)

检查:

SELECT * from [table_name] WHERE date > (NOW() - INTERVAL 24 HOUR).

答案 4 :(得分:3)

SELECT * FROM news WHERE date > DATEADD(d,-1,GETDATE())

答案 5 :(得分:3)

有很多方法可以做到这一点。列出的那些工作得很好,但如果你有一个日期时间字段,这是另一种方式:

SELECT [fields] 
FROM [table] 
WHERE timediff(now(), my_datetime_field) < '24:00:00'

timediff()返回一个时间对象,所以不要将它与86400(一天中的秒数)进行比较,否则你的输出会出现各种错误。

答案 6 :(得分:-3)

SELECT * FROM news WHERE date < DATEADD(Day, -1, date)