3

我有一个带有名为 DATECREATED 的时间戳字段的数据库,我正在尝试运行一个 select 语句来检索当前时间距时间戳至少 60 分钟以上的所有记录

例如。

时间戳为 2012-10-29 12:08:11。

我只想从上面的时间戳记起 60 分钟后才检索记录。因此,如果时间是 13:09 或 15:09,则应该检索它。如果时间是 12:15,应该返回 0;

任何帮助将不胜感激,因为这里的其他答案到目前为止还没有帮助。

谢谢。

4

3 回答 3

2
select * from your_table
where DATECREATED - interval 60 minute <= now() 

看到这个 SQLFiddle

于 2012-10-29T18:11:37.217 回答
1

CURRENT_TIMESTAMP - INTERVAL 60 MINUTE返回 60 分钟前的时间。任何小于或等于该值的时间都应该最多 60 分钟。

SELECT *
FROM `table`
WHERE `datecreated` <= CURRENT_TIMESTAMP - INTERVAL 60 MINUTE
于 2012-10-30T15:26:48.743 回答
0
...
where DATECREATED between subdate(timestamp, interval 60 minute) 
                      and adddate(timestamp, interval 60 minute)

通过使用between带有两个常量值(每个查询计算一次)的类似这样的索引,DATECREATED将使用索引(如果存在)

于 2012-10-30T01:00:58.273 回答