我的表中有 2 列,即DutyHours(time(7))和TimeSpentInOffice(time(7))。
我如何计算这两个时间之间的差异?
该datediff函数以小时、分钟、秒或天等形式返回,但不是按时间返回。
DECLARE @null time;
SET @null = '00:00:00';
SELECT DATEADD(SECOND, - DATEDIFF(SECOND, End_Time, Start_Time), @null)
Run Code Online (Sandbox Code Playgroud)
参考:时差
编辑:根据评论,如果结束时间和开始时间之间的差异可能为负数,那么您需要使用case这样的语句
SELECT CASE
WHEN DATEDIFF(SECOND, End_Time, Start_Time) <=0
THEN DATEADD(SECOND, - DATEDIFF(SECOND, End_Time, Start_Time), @null)
WHEN DATEDIFF(SECOND, End_Time, Start_Time) >0
THEN DATEADD(SECOND, DATEDIFF(SECOND, End_Time, Start_Time), @null)
END AS TimeDifference
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6656 次 |
| 最近记录: |