如何使用DATEDIFF()返回自添加后超过24小时的行

时间:2017-08-16 07:08:27

标签: mysql sql database mysqli database-design

我有一个名为date_added的列的表在MySQL中存储为datetime。 我希望返回自添加到数据库以来已经24小时或更长时间的行。

我正在使用以下查询。但是,它不会返回我希望它返回的内容。

SELECT * FROM campaign WHERE datediff(date_added,NOW())>=1

以下是数据库中的date_added2017-08-15 00:48:31

2 个答案:

答案 0 :(得分:0)

你可以这样做

//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

答案 1 :(得分:0)

不要使用任何“差异”。这些中的任何一个都会在24小时前匹配“添加”行。

WHERE date_added < NOW() - INTERVAL 1 DAY

WHERE date_added < NOW() - INTERVAL 24 HOUR

由于CURDATE()今天上午是午夜,所以在昨天或今天的任何时候都可以完成任务:

WHERE date_added < CURDATE() - INTERVAL 1 DAY