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;
您还应该考虑使用右开区间,因为右边界不是前一小时的一部分。
如何在最后一小时和恰好 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;
您还应该考虑使用右开区间,因为右边界不是前一小时的一部分。