0

我有一个名为 dbo.employees 的表,我运行了一些查询,得到了以下结果。

empId | timeIn   | timeOut  | timeDiff
------+----------+----------+------------
1001  | 03:49:54 | 15:43:42 | 
1017  | 06:27:10 | 13:47:40 | 
1005  | 05:49:50 | 13:42:03 | 

我想运行一个额外的查询来计算 timeDiff ,结果如下所示。我在想 TIMEDIFF 功能可以做到这一点吗?如果可能的话,我想以小时/分钟计算。

empId | timeIn   | timeOut  | timeDiff
------+----------+----------+------------
1001  | 03:49:54 | 15:43:42 | 11hr, 53min
1017  | 06:27:10 | 13:47:40 | 8hr, 20min
1005  | 05:49:50 | 13:42:03 | 7hr, 52min

非常感谢您提前。

4

1 回答 1

0

这是datediff()在横向连接和算术中使用的一个选项:

select e.*, concat(d.diff / 60, 'hr, ', d.diff % 60, 'min') timediff
from dbo.employee e
cross apply (values (datediff(minute, e.timein, e.timeout))) d(diff)

基本上,横向连接以分钟为单位计算两次之间的差异。然后,外部查询构建将该时间间隔表示为小时和分钟的字符串。

于 2020-11-03T21:44:49.043 回答