gpt4 book ai didi

sql - 子选择时间段

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

我有 2 列时间戳:

  1. 开始(例如 2015-11-18 10:00)
  2. 停止(例如 2015-11-18 22:00)

我也有按日历(事件,忙碌),它有 3 列:

  1. 什么 (varchar(50))(例如茶歇)
  2. START(时间戳)(例如 2015-11-18 10:55)
  3. STOP(时间戳)(例如 2015-11-18 11:55)

如何将所有空闲时间段作为单个时间戳返回
即。

free time1: 2015-11-18 10:00 - 2015-11-18 10:55  
free time2: 2015-11-18 11:55 - 2015-11-18 22:00

作为单个 postgresql 查询?

最佳答案

也许你只是想要不存在:

select ts.*
from timestamps ts
where not exists (select 1
from calendar c
where ts.start <= c.end and
ts.end >= c.start
);

您可能需要将不等式调整为严格不等式,具体取决于您如何定义重叠。注意:你也可以使用 overlaps 关键字,但我从来不记得它是否包含端点,这就是为什么我明确地将逻辑写出来的原因。

关于sql - 子选择时间段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33197510/

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