【发布时间】:2025-12-10 08:20:05
【问题描述】:
我有这些代表订阅开始和结束日期的日期范围。日期范围没有重叠。
Start Date End Date
1/5/2015 - 1/14/2015
1/15/2015 - 1/20/2015
1/24/2015 - 1/28/2015
1/29/2015 - 2/3/2015
我想确定任何订阅结束与新订阅开始之间超过 1 天的延迟。例如对于上面的数据,我想要输出:1/24/2015 - 1/28/2015.
如何使用 sql 查询来做到这一点?
编辑:订阅日期范围也可能有多个间隔,但我希望日期范围在最新的日期范围之后。
【问题讨论】:
-
你的逻辑不清楚。请阅读How-to-Ask这里是START的好地方
-
我认为这很清楚。下一行的
end date和start date之间的“差距”应该超过 1 天。 -
不,不清楚。可能存在多少差距?
-
不管有多少空隙,他都想把它们都找出来。因此他需要遍历每条记录并查询
start_date > {{row_end_date + 1 day}},然后他才能推断出他的差距。不幸的是,我不知道如何直接在 sql 中执行此操作,我必须使用 ORM 进行迭代。您很可能需要使用这样的存储过程:*.com/questions/5817395/… -
但他说他想识别“延迟”,然后输出“开始日期 - 结束日期”。我放弃了,对不起。