2013-10-23 22 views
6

SQL Server'da SUM işleci ile ilgili bir sorunum var. Bu sorgu yazarken:SUM toplam süresinde SQL Server

Operand data type time is invalid for sum operator.

SUM için başka bir yöntem var mı veya kayıtlardan toplam kez hesaplamak için:

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

bu hatayı alıyorum? Benim WorkNote Tabloda

, kolona time tipi Time(7) olduğunu ve SUM her öğrenci için tüm (toplam) defa istiyoruz.

+0

zaman nedir 'Burada t2' olur? –

+0

oo Üzgünüz, bu başarısız, sadece toplam (time) .. t2 prevoius sorgusundan –

+0

Soruyu neden MySQL etiketi ile etiketlediniz? –

cevap

10

sonra 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) zamana doğru olarak çalışıyor gibi görünüyor ama daha güzel görünüyor. –

1

Süreyi saniyeler içinde açabilir ve bunu özetleyebilirsiniz.

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

i böyle toplam almak: 1413 i TIME1 gibi saat içinde toplam süreyi istiyorum = 1: 20: 5 time2 = 02:20:10 toplam süresi = 3: 40: iyi biçimlendirilmiş bir şekilde sorunuzu lütfen 15 –

+0

koyun . –