web-dev-qa-db-fra.com

Temps total SUM dans SQL Server

J'ai un problème avec l'opérateur SUM dans SQL Server. Quand j'écris cette requête:

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

Je reçois cette erreur:

L'heure du type de données d'opérande n'est pas valide pour l'opérateur de somme.

Existe-t-il une autre méthode pour SUM ou pour calculer le temps total à partir des enregistrements?

Dans ma table WorkNote, le type de colonne time est Time(7), et je veux SUM toutes les (totales) fois pour chaque élève.

13
Anna Dino

si l'heure en hh/mm/ss puis ::

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

Vous pouvez tourner le temps en secondes et résumer cela.

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