如何解决整个表的SQL Server Datediff
我有一个名为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
非常感谢您。
解决方法
以下是在横向连接和算术中使用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)
基本上,横向连接以分钟为单位计算两次之间的差。然后,外部查询会构建一个字符串,将该字符串表示为小时和分钟。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。