gpt4 book ai didi

sql - Postgres 重叠日期查询 - 查看作为范围的两个日期是否重叠一个月

转载 作者:行者123 更新时间:2023-11-29 11:41:11 28 4
gpt4 key购买 nike

我正在查询以查看日期范围 [start_date] - [end_date] 是否与一个月重叠。

到目前为止我有:

select * from my table
where (start_date, end_date) overlaps ('2000-02-01', '2000-02-28')

我需要它包含从当月外开始但进入当月的日期范围,或者从当月开始并进入下个月的日期范围:例如

'2000-01-31', '2000-02-01'
'2000-02-28', '2000-03-01'

但是这些并没有包含在查询结果中。

如果我可以只放置月份的日期部分而不是重叠部分('2000-02-01'、'2000-02-28'),那就太好了

感谢任何帮助

最佳答案

您可以使用 daterange :

select * 
from the_table
where daterange(start_date, end_date, '[]') && daterange(date '2000-02-01', date '2000-02-28', '[]')

参数 '[]' 创建一个“包含”范围。这也将在部分或多个月内正常工作(甚至可以有效地建立索引)

关于sql - Postgres 重叠日期查询 - 查看作为范围的两个日期是否重叠一个月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50700940/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com