给定一组date_created
存储的数据,如2017-04-13 23:29:52
,如何构建SQL查询以选择在过去3小时内创建的所有项目?
我原本以为会做这样的事情:
SELECT
*,
MAX(date_created)
FROM items
GROUP BY date_created
但这不是我想要的。我不知道怎么回事。
答案 0 :(得分:2)
在NOW()
条款中使用INTERVAL
和WHERE
SELECT * FROM items WHERE date_created <= NOW() - INTERVAL 180 minute AND date_created >= NOW() - INTERVAL 210 minute
答案 1 :(得分:1)
这个使用CURDATE,CURDATE和DATE_ADD:
SELECT *
FROM items
WHERE DATE(date_created) = CURDATE()
AND TIME(date_created) BETWEEN CURTIME() AND DATE_ADD(CURTIME(), INTERVAL -3 HOUR)
答案 2 :(得分:0)
select * from items where
extract(hours from age(current_timestamp, date_created))>=3;
Extract关键字将从当前时间戳中提取小时差异,并仅返回大于或等于3的小时差异。