1
我希望能够识别网络数据中的日期间隔。例如:SQL Server - 确定日期范围间隙
- 网络1:12年1月1日(开始) - 2014年12月31日(结束)
- 网络2:17年1月1日(开始) - 12/31/9999(端)
在上面的例子有在多年网络1的结束日期和网络2开始日期之间的间隙2015和2016
我希望能够识别网络数据中的日期间隔。例如:SQL Server - 确定日期范围间隙
在上面的例子有在多年网络1的结束日期和网络2开始日期之间的间隙2015和2016
你需要具有离散值,以便能够比较日期和找到差距。由于datetime不在感天比较谨慎(你有小时,分钟和秒),你可能会想创建日历表,是这样的:
|date |
|----------|
|01-01-2000|
|01-02-2000|
|01-03-2000|
...
12-31-2050
我怀疑你将需要填写它,直到年份9999.
日历表可以包含日期,月份或年份,具体取决于您的要求。
有了这样的表格之后,您可以将日历表格与数据表格结合起来,根据您的标准找到差距。喜欢的东西:
SELECT date, table.id
FROM calendar
LEFT JOIN table on calendar.date BETWEEN table.start_date AND table.end_date
WHERE table.id IS NULL
这是一个基本假设的例子,因为你还没有提供有关表和查询的全部信息,但你可以在它的工作,以获得您想要的结果。
你的预期结果是什么? –
由于这是SQL,因此您试图在查询上创建表格模式。为什么网络2有12/31/9999作为日期。您可以简单地将其保留为未定义(即未定义的上限) – Acewin
此堆栈溢出问题是否可以解决您的问题? https://stackoverflow.com/questions/9604400/sql-query-to-show-gaps-between-multiple-date-ranges – bbrumm