在我的SQL查詢中,如何使它在過去24小時內找到記錄? 如在過去24小時內查找帶有日期字段的記錄
SELECT * FROM news WHERE date < 24 hours
我通常做一個變量設置爲日期() - 1天,它比較的是,但我想知道SQL查詢的方式是否更快?
在我的SQL查詢中,如何使它在過去24小時內找到記錄? 如在過去24小時內查找帶有日期字段的記錄
SELECT * FROM news WHERE date < 24 hours
我通常做一個變量設置爲日期() - 1天,它比較的是,但我想知道SQL查詢的方式是否更快?
SELECT * FROM news WHERE date < DATEADD(Day, -1, date)
你需要'>'NOT'<' –
SELECT * FROM news WHERE date > DATEADD(d,-1,GETDATE())
沒關係,我看你已經添加了它是你正在使用的MySQL而不是SQL Server。不過,答案可能會幫助別人:) – Simon
是啊,它幫助我兄弟:) –
SELECT * FROM news WHERE date > DATE_SUB(NOW(), INTERVAL 24 HOUR)
是否有可能這樣做:WHERE SomeDate> Now()-1? –
@Andrew:我認爲這是'24小時',而不是'24小時'。 –
@Ypercube - yup,已更正。 – Andrew
您只需選擇日期是在當前時間減1個交易日走高。
SELECT * FROM news WHERE date >= now() - INTERVAL 1 DAY;
有很多方法可以做到這一點。所列出的那些工作的偉大,但這裏的另一種方式,如果你有時間字段:
SELECT [fields]
FROM [table]
WHERE timediff(now(), my_datetime_field) < '24:00:00'
timediff()
返回一個時間對象,因此不作比較它的錯誤86400(以秒爲單位的天數時) ,否則你的輸出將會是各種各樣的錯誤。
您可能希望使用
檢查:
SELECT * from [table_name] WHERE date > (NOW() - INTERVAL 24 HOUR).
SELECT * from new WHERE date < DATE_ADD(now(),interval -1 day);
的數據庫您使用的? –
MySQL。更新:D – user1022585