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.
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
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