2010-07-31 2 views
6

Ich habe eine Tabelle Daten wie dieseBerechnung Gesamtzeitdauer in MySQL

(int) (time) [mySQL datatype] 

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

i die Gesamtdauer aus dieser Tabelle berechnen wollen, wie können wir es tun. wie 17:33:00. Könnte irgendjemand bitte mysql Abfrage zur Verfügung stellen, um dies zu berechnen.

Antwort

16

Versuchen Sie, Sekunden Umwandlung, Summieren, dann zu einer Zeit, die Umwandlung zurück:

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

Ergebnis:

17:33:00 
+0

aber es –

+0

@APS in Folge null zurückkehrt: Die wahrscheinlich einige der becasue ist Dauern sind NULL. Fügen Sie 'WHERE Duration IS NOT NULL' nach' FROM Table1' hinzu und es sollte das Problem beheben. –

+1

Hallo Mark Byers, verstehe das ist ein legendärer Beitrag. Es ist nur, dass wir festgestellt haben, wenn das Zeitformat wie hh: mm: ss summiert, könnte es Null ergeben, wenn die Werte mehr als 60 Sekunden sind, 60 Minuten als Minute + oder Stunde + e.e. 02:45:30 + 01:38:40 = Summe wäre 03:84:10. Mit CAST() wird die Antwort als (null) zurückgegeben. Vielleicht ist dies A.P.S vielleicht begegnet. Ja, es ist gut, "echte" Nullen aus der Kalkulation zu vermeiden, indem man die WHERE-Klausel hinzufügt. Also müssen wir die lange Formatierung machen. [Dies ist die Fehlerbeschreibung] (http://bugs.mysql.com/bug.php?id=12108) – bonCodigo