在PostgreSQL中查找两个时间戳之间的重叠时间,可以使用以下方法:
SELECT *
FROM your_table
WHERE start_time <= end_time -- 确保开始时间早于或等于结束时间
AND end_time >= start_time -- 确保结束时间晚于或等于开始时间
在上述查询中,your_table
是你要查询的表名,start_time
和end_time
是表中存储时间戳的列名。这个查询将返回所有与给定时间段重叠的记录。
OVERLAPS
函数。使用OVERLAPS
函数可以更简洁地查询重叠时间段:SELECT *
FROM your_table
WHERE (start_time, end_time) OVERLAPS ('2022-01-01 00:00:00'::timestamp, '2022-01-02 00:00:00'::timestamp)
在上述查询中,your_table
是你要查询的表名,start_time
和end_time
是表中存储时间戳的列名。'2022-01-01 00:00:00'::timestamp
和'2022-01-02 00:00:00'::timestamp
是你要查询的时间段。这个查询将返回所有与给定时间段重叠的记录。
SELECT *
FROM your_table
WHERE tsrange(start_time, end_time, '[]') && tsrange('2022-01-01 00:00:00', '2022-01-02 00:00:00', '[]')
在上述查询中,your_table
是你要查询的表名,start_time
和end_time
是表中存储时间戳的列名。tsrange(start_time, end_time, '[]')
将时间戳列转换为范围类型,tsrange('2022-01-01 00:00:00', '2022-01-02 00:00:00', '[]')
表示你要查询的时间段。&&
操作符用于判断范围是否重叠。这个查询将返回所有与给定时间段重叠的记录。
推荐的腾讯云相关产品:腾讯云数据库 PostgreSQL,详情请参考腾讯云数据库 PostgreSQL。
领取专属 10元无门槛券
手把手带您无忧上云