SQL Query由3小时前创建

时间:2017-06-02 18:47:07

标签: mysql sql database

给定一组date_created存储的数据,如2017-04-13 23:29:52,如何构建SQL查询以选择在过去3小时内创建的所有项目?

我原本以为会做这样的事情:

SELECT
  *,
  MAX(date_created)
FROM items
GROUP BY date_created

但这不是我想要的。我不知道怎么回事。

3 个答案:

答案 0 :(得分:2)

NOW()条款中使用INTERVALWHERE

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的小时差异。