我有一个名为date_added
的列的表在MySQL中存储为datetime。
我希望返回自添加到数据库以来已经24小时或更长时间的行。
我正在使用以下查询。但是,它不会返回我希望它返回的内容。
SELECT * FROM campaign WHERE datediff(date_added,NOW())>=1
以下是数据库中的date_added
:2017-08-15 00:48:31
答案 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