SQL 整个服务器的 Datediff table
SQL Server Datediff for an entire table
我有一个名为 dbo.employees 的 table,我 运行 进行了一些查询,得到了以下结果。
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 函数可以做到这一点吗?如果可能的话,我想在 hours/minutes 中计算它。
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)
基本上,横向连接以分钟为单位计算两个时间之间的差异。然后,外部查询构建以小时和分钟表示该间隔的字符串。
我有一个名为 dbo.employees 的 table,我 运行 进行了一些查询,得到了以下结果。
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 函数可以做到这一点吗?如果可能的话,我想在 hours/minutes 中计算它。
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)
基本上,横向连接以分钟为单位计算两个时间之间的差异。然后,外部查询构建以小时和分钟表示该间隔的字符串。