gpt4 book ai didi

sql - 如何检查与特定时间 SQL 重叠的日期时间

转载 作者:行者123 更新时间:2023-11-29 13:39:31 25 4
gpt4 key购买 nike

我使用 postgresSql,我想检查特定日期时间的重叠日期,而不是范围日期时间。

示例:

我订了两次房,都是每周六订:

StartTime                EndTime
2019-08-10 00:00:00 2019-08-20 03:00:00

我只想每周在每个星期六(startTime + 7 天)检查日期时间。如果我把时间看成这样:

StartTime                EndTime
2019-08-17 00:00:00 2019-08-17 03:00:00

它重叠了。如果我投入时间:

StartTime                EndTime
2019-08-16 00:00:00 2019-08-16 03:00:00

它不重叠。

如果我使用命令 sql 看起来像:

SELECT (TIMESTAMP '2019-08-10 00:00:00', TIMESTAMP '2019-08-10 03:00:00') OVERLAPS (TIMESTAMP '2019-08-10 01:00:00',TIMESTAMP '2019-08-20 01:00:00')

它检查时间范围内的所有日期:2019-08-10 -> 2019-08-20 并抛出 overlaps 。我只想检查 2019-08-10 和 2019-08-17 并抛出重叠。如果日期为 2019-08-11,2019-08-12,2019-08-13,2019-08-14,2019-08-15,2019-08-16,2019-08-18,2019-08-19, 2019-08-20 它不重叠。如何做到这一点。

它每月都会质疑它。请帮忙?

最佳答案

如果至少一个星期六在给定范围内,您可以添加附加条件

SELECT 
(TIMESTAMP '2019-08-10 00:00:00', TIMESTAMP '2019-08-10 03:00:00')
OVERLAPS
(TIMESTAMP '2019-08-10 01:00:00', TIMESTAMP '2019-08-20 01:00:00') AND
EXISTS (
select 1 from generate_series(
TIMESTAMP '2019-08-10 00:00:00',
TIMESTAMP '2019-08-10 03:00:00',
INTERVAL '1 DAY'
) as dt where extract(isodow from dt ) = 6
) --ISO day of the week

关于sql - 如何检查与特定时间 SQL 重叠的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57368104/

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