2个日期之间的日期时间差

时间:2017-11-06 07:54:24

标签: sql-server sql-server-2014

在SQL Server 2014中,我需要以HH :: MM :: SS格式计算所有记录的开始时间和结束时间之间的总时间差

示例数据:

ID      StartTime               EndTime
---------------------------------------------------
5287    2017-11-04 12:38:04     2017-11-04 12:40:45
5288    2017-11-04 17:08:28     2017-11-04 17:08:34
5289    2017-11-04 17:08:41     2017-11-04 17:11:41

(2:41 - ID 5287的时差

0:6 - ID 5288的时差

3:0 - ID 5289的时差 )

输出:00:05:47

3 个答案:

答案 0 :(得分:1)

尝试一些事情,例如:

SELECT CONVERT(char(8), DATEADD(second, DATEDIFF(SECOND,StartTime,EndTime), ''), 114)

如果你想要总和:

SELECT CONVERT(char(8), DATEADD(second, SUM(DATEDIFF(SECOND,StartTime,EndTime)), ''), 114)

答案 1 :(得分:1)

尝试以下方法:  SELECT DATEDIFF(year, expression_one, expression_two) AS DateDiff;

部分year是间隔。它可以是以下任何一种:

  • quarter,qq,q = Quarter
  • 月,mm,m =月
  • dayofyear =一年中的某一天
  • day,dy,y = Day
  • 周,周,周=周
  • 工作日,dw,w =工作日
  • 小时,hh =小时
  • 分钟,mi,n =分钟
  • second,ss,s = Second
  • 毫秒,ms =毫秒

答案 2 :(得分:1)

测试表

create table timeTest
(
Id int,
StartTime datetime , 
EndTime datetime
)

select * from timeTest

enter image description here

select convert(varchar(5),sum(DateDiff(s, StartTime, 
EndTime)/3600))+':'+convert(varchar(5),sum(DateDiff(s, StartTime, 
EndTime)%3600/60))+':'
+convert(varchar(5),(sum(DateDiff(s, StartTime, EndTime)%60)))  as 
[hh:mm:ss]
from timeTest

输出:

enter image description here