2010-07-31 59 views
6

tengo una tabla de datos como esteCálculo de la duración de tiempo total en MySQL

(int) (time) [mySQL datatype] 

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

quiero para el cálculo de la duración total de esta tabla, ¿cómo podemos hacerlo. como a las 17:33:00. ¿Podría alguien proporcionar la consulta de MySQL para calcular esto?

Respuesta

16

Intenta convertir a segundos, sumando, a continuación, convertir de nuevo a un tiempo:

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

Resultado:

17:33:00 
+0

pero se vuelve nulo en consecuencia –

+0

@APS: Que Probablemente robaba algunas de las las duraciones son NULL. Agregue 'WHERE Duration IS NOT NULL' después de' FROM Table1' y debería solucionar el problema. –

+1

Hola Mark Byers, entiende que esta es una publicación legendaria. Es solo que notamos que si el formato de tiempo como valores de hh: mm: ss se está sumando, podría resultar nulo cuando los valores son más de 60 segundos, 60 minutos para considerar como un minuto + o una hora + e.e. 02:45:30 + 01:38:40 = la suma sería 03:84:10. Usando CAST() la respuesta se devuelve como (nulo). Tal vez eso es lo que A.P.S puede haber encontrado. Sí, es bueno evitar los nulos "reales" de la calcificación añadiendo la cláusula WHERE. Así que tenemos que hacer el formato largo. [Esta es la descripción del error] (http://bugs.mysql.com/bug.php?id=12108) – bonCodigo

Cuestiones relacionadas