MySQL 根据纪元字段选择上一小时的条目

Pet*_*ell 0 mysql

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

这段伪代码是我想要实现的,但我不知道如何在 MySQL 中做到这一点。在另一种语言中,我会检查time每行中的 epoch 值的差异不超过 3,600 个。

SELECT * FROM dailyltc WHERE `time` <= 1 hour
Run Code Online (Sandbox Code Playgroud)

VMa*_*Mai 5

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

SELECT
    *
FROM
    dailyltc
WHERE
    `time` >  UNIX_TIMESTAMP(NOW() - INTERVAL 1 HOUR); 
Run Code Online (Sandbox Code Playgroud)

如果存在更新的值,那么您可以简单地添加上限:

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