如何汇总日期列(hh:mm:ss)

时间:2013-11-18 12:03:31

标签: sql

我的列名为Time-diff。这个列差异由两个日期组成。

我需要总结所有Time-diff列,例如Total花费的小时数。

就像,

Time-diff
00:30:00
00.10:00
01.00.00

i get like this:

CONVERT(CHAR(8), CAST(CONVERT(varchar(23),DateOut,121) AS DATETIME)-
CAST(CONVERT(varchar(23),DateIn,121)AS DATETIME),8) Time-diff

我需要将Time-diff列相加如下:

the output should be:01:40:00

提前致谢..

2 个答案:

答案 0 :(得分:0)

你真的不需要所有那些演员。你从日期到varchar并重新开始。只需

即可获得相同的结果
SELECT CONVERT(CHAR(8), DateOut - DateIn, 8) [Time-diff]

并且您可以通过使用不同的查询来获取您要查找的输出,然后转换该输出。

select CONVERT(CHAR(8), 
dateadd(s, sum(datediff(s, DateIn, DateOut)), getdate()) - getDate(),8)
from yourTable

这只是获取每行的日期差异,并将其相加。然后使用您之前使用的相同方法,但这次使用由每行总和计算的时差

答案 1 :(得分:0)

通过小调整直接从Jas偷窃;

select CONVERT(CHAR(8),
       dateadd(s, sum(datediff(s, DateIn, DateOut)), '1/1/1900')
       ,8)
  from yourTable