2013-10-23 10 views
6

Ho un problema con l'operatore SUM in SQL Server. Quando scrivo questa query:Tempo totale SUM in SQL Server

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

ottengo questo errore:

Operand data type time is invalid for sum operator.

C'è qualche altro metodo per SUM o per calcolare i tempi totali dei record?

Nel mio WorkNote tavolo, il tipo di colonna di time è Time(7), e voglio SUM tutti i tempi (totale) per ogni studente.

+0

cosa 't2' qui? –

+0

oo mi dispiace, questo è fallito, solo la somma (tempo) .. t2 è dalla query precedente –

+0

Perché hai taggato la domanda con il tag MySQL? –

risposta

10

se il tempo in hh/mm/ss poi ::

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) poiché time' sembra funzionare correttamente ma sembra più bello. –

1

È possibile impostare il tempo in secondi e riassumerlo.

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

ottengo un totale come quello: 1413 voglio tempo totale in ore come time1 = 1: 20: 5 time2 = 2:20:10 tempo totale = 3: 40: 15 –

+0

Metti questo per favore nella tua domanda in modo ben formattato . –