2013-10-23 56 views
6

SQL Server中的SUM运算符有问题。当我写这篇文章的查询:SQL Server总时间

SELECT StudentID, StudentName, SUM(t2.time) as 'TotalTime' 
FROM WorkNote 
GROUP BY StudentID, StudentName 

我得到这个错误:

Operand data type time is invalid for sum operator.

是否有SUM一些其他方法或总时间从记录中计算?

在我WorkNote表,time列的类型为Time(7),我想SUM所有的(总)时间为每一个学生。

+0

时请告诉我't2'这里? –

+0

很抱歉,这是失败的,只有总和(时间).. t2是从prevoius查询 –

+0

你为什么用MySQL标签标记问题? –

回答

10

如果hh/mm/ss然后::

SELECT studentid,studentname, 
     DATEADD(ms, SUM(DATEDIFF(ms, '00:00:00.000', mytime)), '00:00:00.000') as time 
    FROM 
     worknote 
+0

'DATEADD(ms,SUM(DATEDIFF(ms,0,mytime)),0)as time'似乎也能正常工作,但看起来更好。 –

1

你可以在几秒钟内打开时间,然后总结出来。

SELECT StudentID, 
     StudentName, 
     sum(DATEPART(SECOND, [time]) + 60 * 
       DATEPART(MINUTE, [time]) + 3600 * 
       DATEPART(HOUR, [time]) 
      ) as 'TotalTime' 
FROM WorkNote 
GROUP BY StudentID, StudentName 
+0

我得到这样的总数:1413 我希望总时间以小时为单位,比如time1 = 1:20:5 time2 = 2:20:10总时间= 3:40:15 –

+0

请将您的问题以格式良好的方式呈现。 –