簡體   English   中英

我如何使用DATEDIFF()返回自添加以來已超過24小時的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM