2013-10-23 91 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

請將您的問題以格式良好的方式呈現。 –