首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算重叠分钟数

计算重叠分钟数
EN

Stack Overflow用户
提问于 2017-10-09 12:35:27
回答 1查看 131关注 0票数 1
代码语言:javascript
复制
Start,                  Stop,                   Machine,   Prodid
2017-09-11 06:36:37.000 2017-09-11 07:41:35.000 CNC M 6 17-012811
2017-09-11 07:49:27.000 2017-09-11 10:10:01.000 CNC M 6 17-012811
2017-09-11 09:34:46.000 2017-09-11 10:10:01.000 CNC M 7 17-012738
2017-09-11 10:14:50.000 2017-09-11 11:50:15.000 CNC M 6 17-012811
2017-09-11 10:15:50.000 2017-09-11 11:50:15.000 CNC M 7 17-012738
2017-09-11 11:55:52.000 2017-09-11 12:17:03.000 CNC M 6 17-012811
2017-09-11 11:56:15.000 2017-09-11 12:17:14.000 CNC M 7 17-012738

我需要计算重叠机器在几分钟内的运行时间。有必要这样做吗?滞后还是领先?还是我用子查询来完成它?我在Server 2016上工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-09 13:18:12

您可以使用此查询。我从停止时间减去重叠的开始时间。

代码语言:javascript
复制
DECLARE @Tbl TABLE(Start DATETIME, [Stop] DATETIME,Machine VARCHAR(20),Prodid VARCHAR(20))

INSERT INTO @Tbl VALUES

('2017-09-11 06:36:37.000','2017-09-11 07:41:35.000','CNC M 6','17-012811'),
('2017-09-11 07:49:27.000','2017-09-11 10:10:01.000','CNC M 6','17-012811'),
('2017-09-11 09:34:46.000','2017-09-11 10:10:01.000','CNC M 7','17-012738'),
('2017-09-11 10:14:50.000','2017-09-11 11:50:15.000','CNC M 6','17-012811'),
('2017-09-11 10:15:50.000','2017-09-11 11:50:15.000','CNC M 7','17-012738'),
('2017-09-11 11:55:52.000','2017-09-11 12:17:03.000','CNC M 6','17-012811'),
('2017-09-11 11:56:15.000','2017-09-11 12:17:14.000','CNC M 7','17-012738')

SELECT T1.*, DATEDIFF(MINUTE, Ovr.Start , T1.[Stop])  Overlapping FROM @Tbl T1
OUTER APPLY (SELECT TOP 1 * FROM @Tbl T2 WHERE T2.Start > T1.Start AND T2.Start < T1.Stop ORDER BY T2.Start) ) AS Ovr

结果

代码语言:javascript
复制
Start                   Stop                    Machine              Prodid               Overlapping
----------------------- ----------------------- -------------------- -------------------- -----------
2017-09-11 06:36:37.000 2017-09-11 07:41:35.000 CNC M 6              17-012811            NULL
2017-09-11 07:49:27.000 2017-09-11 10:10:01.000 CNC M 6              17-012811            36
2017-09-11 09:34:46.000 2017-09-11 10:10:01.000 CNC M 7              17-012738            NULL
2017-09-11 10:14:50.000 2017-09-11 11:50:15.000 CNC M 6              17-012811            95
2017-09-11 10:15:50.000 2017-09-11 11:50:15.000 CNC M 7              17-012738            NULL
2017-09-11 11:55:52.000 2017-09-11 12:17:03.000 CNC M 6              17-012811            21
2017-09-11 11:56:15.000 2017-09-11 12:17:14.000 CNC M 7              17-012738            NULL
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46646612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档