在我的SQL查询中如何让它在过去24小时内找到记录? 例如
SELECT * FROM news WHERE date < 24 hours
我通常通过将变量设置为date() - 1天并将其与之比较来实现,但我想知道sql查询方式是否更快?
答案 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)