2010-07-31 13 views
6

j'ai données de la table comme celui-ciCalcul de durée totale de MySQL

(int) (time) [mySQL datatype] 

Id  Duration 
------------------ 
1  00:10:00 
2  10:10:00 
3  03:00:00 
4  04:13:00 

je veux calculer la durée totale de ce tableau, comment pouvons-nous le faire. comme 17:33:00. Quelqu'un peut-il s'il vous plaît fournir une requête mysql pour le calculer.

Répondre

16

Essayez de convertir en secondes, la somme, puis en convertissant à une époque:

SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(Duration))) 
FROM Table1 

Résultat:

17:33:00 
+0

mais il est de retour nul dans le résultat –

+0

@APS: C'est becasue probablement une partie de la les durées sont NULL. Ajouter 'WHERE Duration is not NULL' après' FROM Table1' et il devrait résoudre le problème. –

+1

Salut Mark Byers, comprenez que c'est un article légendaire. C'est juste que nous avons remarqué que si le format de temps comme les valeurs de hh: mm: ss résument, il pourrait résulter null quand les valeurs sont plus de 60 secondes, 60 minutes à considérer comme une minute + ou heure + e.e. 02:45:30 + 01:38:40 = somme serait 03:84:10. À l'aide CAST() la réponse est renvoyée en tant que (null). Peut-être que c'est ce que A.P.S a pu rencontrer. Oui, il est bon d'éviter les "vrais" nulls de la calcualtion en ajoutant la clause WHERE. Nous devons donc faire le long formatage. [Ceci est la description du bug] (http://bugs.mysql.com/bug.php?id=12108) – bonCodigo