在我的SQL查询中,如何使其查找最近24小时内的记录?例如:
SELECT * FROM news WHERE date < 24 hours
我通常会通过将一个变量设置为date() - 1天,并将其与之比较来完成,但我想知道SQL查询的方式是否更快?
你只需选择比当前时间减去一天更晚的日期。
SELECT * FROM news WHERE date >= now() - INTERVAL 1 DAY;
SELECT * FROM news WHERE date > DATE_SUB(NOW(), INTERVAL 24 HOUR)
获取最近 24 小时的记录:
SELECT * from [table_name] WHERE date > (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 [fields]
FROM [table]
WHERE timediff(now(), my_datetime_field) < '24:00:00'
< p > timediff()
函数返回一个时间对象,因此不要将其与86400(一天中的秒数)进行比较,否则输出结果会出现各种错误。
SELECT * FROM news WHERE date < DATEADD(Day, -1, date)