在过去24小时内查找带有date字段的logging

在我的SQL查询中,如何使它在过去24小时内findlogging? 例如

SELECT * FROM news WHERE date < 24 hours 

我通常通过设置一个variablesdate() – 1天并比较它,但我想知道是否SQL查询方式是更快?

您只需select高于当前时间减去1天的date。

 SELECT * FROM news WHERE date >= now() - INTERVAL 1 DAY; 
 SELECT * FROM news WHERE date > DATE_SUB(NOW(), INTERVAL 24 HOUR) 
 SELECT * from new WHERE date < DATE_ADD(now(),interval -1 day); 
 SELECT * FROM news WHERE date > DATEADD(d,-1,GETDATE()) 

检查:

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

有这么多的方法来做到这一点。 列出的工作很好,但如果你有一个date时间字段这是另一种方式:

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

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

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