我的表中start_time和end_time列都被设置为具有时区类型的时间戳。此表包含连续的间隔,即一行的end_time是下一行的start_time。
现在,我需要选择与特定间隔相交的所有行(两个时间戳)。
例如,表可以如下所示:
id | start_time | end_time
----+----------------------------+----------------------------
1 | 2022-01-23 15:00:00.000+00 | 2022-01-23 16:00:00.000+00
2 | 2022-01-23 16:00:00.000+00 | 2022-01-23 17:00:00.000+00
3 | 2022-01-23 17:00:00.000+00 | 2022-01-23 18:00:00.000+00
4 | 2022-01-23 18:00:00.000+00 | 2022-01-23 19:00:00.000+00我希望选择与从2022-01-23 16:23:00.000+00开始,以2022-01-23 18:44:00.000+00结尾的间隔相交的所有行,即行ID 2-4。
我可以使用三个SQL命令来完成它:
但是,两个搜索时间都不可能包含在表中的任何时间间隔中(比如2022-01-23 15:00:00.000+00之前的任何时间戳或2022-01-23 19:00:00.000+00之后的时间戳)。
有更好的办法吗?
https://stackoverflow.com/questions/70826499
复制相似问题