我需要从最后一小时返回MySQL数据库中的所有条目。该数据库有一个名为time
的列,其中的纪元值为。
这段伪代码是我希望能够实现的,但我不确定如何在MySQL中执行此操作。在另一种语言中,我要检查每行中time
的纪元值是否不超过3,600。
SELECT * FROM dailyltc WHERE `time` <= 1 hour
答案 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());