如何获取上一小时和恰好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
答案 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;
您还应考虑使用正确的开放时间间隔,因为正确的边界不在小时前。