SQL 中的 Python 中的舍入时间

Rounding time in Python in SQL

如何在最后一小时和恰好 1 小时之前进行循环,例如,如果现在是 14:10 我正在寻找的答案是给我 13-14:00 之间的所有记录,我的代码仅适用于最后一小时:

select *
from my_table p
where p.when_seen between unix_timestamp(now())- 3600 and unix_timestamp(now())

wheen_seen 是 linux 时间戳 例如

select when_seen ,from_unixtime(when_seen ) from my_table LIMIT 1;

1539085264 2018-10-09 11:41:04

将 Unix 时间戳除以一小时的秒数 (3600),将除法乘以一小时的秒数。然后 oyu 有小时的时间戳,没有分钟或秒。

SELECT *
       FROM my_table p
       WHERE p.when_seen >= floor(unix_timestamp(now()) / 3600) * 3600 - 3600
             AND p.when_seen < floor(unix_timestamp(now()) / 3600) * 3600;

您还应该考虑使用右开区间,因为右边界不是前一小时的一部分。