【发布时间】:2020-12-20 15:27:33
【问题描述】:
我正在使用 Datetime 列,由于时间重叠,我无法计算时间。
这是我的示例数据
Declare @T table (ID Int, InTime Datetime,OutTime Datetime)
Insert into @T values (1,'2020-08-23 09:26:07.000','2020-08-23 09:57:55.000')
Insert into @T values (1,'2020-08-23 14:09:08.000','2020-08-26 08:13:45.000')
Insert into @T values (1,'2020-08-24 11:14:37.000','2020-08-24 18:07:25.000')
Insert into @T values (1,'2020-08-25 09:19:38.000','2020-08-25 19:19:29.000')
Insert into @T values (1,'2020-08-26 08:13:50.000','2020-08-28 08:39:23.000')
Insert into @T values (1,'2020-08-27 08:42:16.000','2020-08-27 11:38:06.000')
Insert into @T values (1,'2020-08-27 09:51:14.000','2020-08-28 18:23:06.000')
Insert into @T values (1,'2020-08-29 09:51:14.000','2020-08-30 18:23:06.000')
我的预期输出:
+----+-------------------------+--------------------------+
| ID | InTime | OutTime |
+----+-------------------------+--------------------------+
| 1 | 2020-08-23 09:26:07.000 | 2020-08-23 09:57:55.000 |
| 1 | 2020-08-23 14:09:08.000 | 2020-08-26 08:13:45.000 |
| 1 | 2020-08-26 08:13:50.000 | 2020-08-28 08:39:23.000 |
| 1 | 2020-08-29 09:51:14.000 | 2020-08-30 18:23:06.000 |
+----+-------------------------+--------------------------+
如果您在表格中看到第二个条目,其中我的 Intime 是 2020-08-23 14:09:08.000,outTime 是 2020-08-26 08:13:45.000。因此,如果表中有 23 到 26 之间的任何条目,我们应该跳过该条目。所以在输出表中,我们需要跳过第 24 和第 25 条目。
有人可以帮我解决这个问题吗?任何帮助将不胜感激
我尝试了这个链接但无法理解逻辑 Link
【问题讨论】:
标签: sql sql-server datetime sql-server-2008 gaps-and-islands