SQL中Python中的舍入时间

时间:2019-06-02 17:57:14

标签: mysql sql rounding

如何获取上一小时和恰好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

1 个答案:

答案 0 :(得分:1)

将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;

您还应考虑使用正确的开放时间间隔,因为正确的边界不在小时前。