我有一个数据,它有两个基于时间的列-日期,小时(其他列存在)。我的目标是读取特定时间段的数据。
数据:
date hour
22-06-20 0
22-06-20 1
.. ..
23-06-20 23
目标:在22-06-20第4小时到23-06-20第4小时之间读取数据。
我的问题是:
select date, hour from mytable where
date >= date("22-06-20")
and hour >= 4;
以上将给我提供从22-06-20第4小时到23-06-20第23小时的数据。但是如何在20年6月23日的第4个小时阻止它。
我已经在上面展示了一个硬编码的例子,但是我正在尝试的是实时的,因为我的表每小时更新一次。
select date, hour from mytable where
date >= date(current_timestamp - interval '25' hour)
and hour >= hour(current_timestamp - interval '25' hour)
为什么我要做-25小时是我想要最后24小时的数据,不包括最后一个小时,也就是说现在是20年6月23日的第10个小时。我要从20月22日到20月23日的数据。尝试解决上述问题也会有助于我做到这一点。
1条答案
按热度按时间lawou6xi1#
假设你的日期是一个时间戳:
编辑:
哦,我明白了。它们在两个不同的列中。所以你可以: