[英]How can I use DATEDIFF() to return rows where it has been more than 24 hours since it was added
我有名為date_added
表在MySQL中存儲為datetime。 我想返回自將其添加到數據庫以來已經24小時或更長時間的行。
我正在使用以下查詢。 但是,它不返回我想要返回的內容。
SELECT * FROM campaign WHERE datediff(date_added,NOW())>=1
數據庫中的date_added
如下所示: 2017-08-15 00:48:31
你可以這樣
//This code is for SQL
SELECT *, DATEDIFF(HOUR,date_added,NOW()) AS Hours
FROM campaign WHERE DATEDIFF(HOUR,date_added,NOW()) >=24
如您所見,我按小時進行了比較
更新
請嘗試以下一項。
SELECT * FROM campaign
WHERE HOUR(TIMEDIFF(DATE_FORMAT(date_added, "%Y-%m-%d %H:%i:%s"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:%i:%s"))) >= 24
我使用TimeDiff並使用dateformat將其設置為小時。
您也可以使用此查詢
SELECT * FROM campaign WHERE TIMESTAMPDIFF(HOUR, date_added, NOW()) >= 24
不要使用任何形式的“ diff”。 這些中的任何一個都會匹配24小時前“添加”的行。
WHERE date_added < NOW() - INTERVAL 1 DAY
WHERE date_added < NOW() - INTERVAL 24 HOUR
由於CURDATE()
是今天早晨的午夜,因此它將捕獲昨天或今天任何時候執行的所有操作:
WHERE date_added < CURDATE() - INTERVAL 1 DAY
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.