MySQL基于纪元字段从最后一小时中选择条目

时间:2014-07-05 11:02:08

标签: mysql

我需要从最后一小时返回MySQL数据库中的所有条目。该数据库有一个名为time的列,其中的纪元值为。

这段伪代码是我希望能够实现的,但我不确定如何在MySQL中执行此操作。在另一种语言中,我要检查每行中time的纪元值是否不超过3,600。

SELECT * FROM dailyltc WHERE `time` <= 1 hour

1 个答案:

答案 0 :(得分:4)

不使用函数转换存储的纪元值使MySQL能够使用索引。因此,我更喜欢使用UNIX_TIMESTAMP计算限制,而不是将存储的值转换为DATETIME值。

SELECT
    *
FROM
    dailyltc
WHERE
    `time` >  UNIX_TIMESTAMP(NOW() - INTERVAL 1 HOUR); 

如果存在较新的值,则只需添加上限:

SELECT
    *
FROM
    dailyltc
WHERE
    `time` >  UNIX_TIMESTAMP(NOW() - INTERVAL 1 HOUR)
AND
    `time` <=  UNIX_TIMESTAMP(NOW());