Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/07/2010, 17:07
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Excedo el valor maximo de time

Básicamente es imposible que el total de horas asignadas a una misma instancia de una entidad pueda llegar a esa cifra (una persona no puede trabajar 1000 horas en un mes, porque un mes sólo tiene 744 en total), lo que me indica que estás haciendo una sumatoria sin desagregaciones, para la cual, no debería ser necesario representarlo en formato HH:MM:SS.
En cualquier caso, lo que tienes que hacer es o construir el string de horas artificialmente, o representar el tiempo transcurrido en un formato DD.HH.mm.ss, que sí podría ser más o menos lógico.
Una forma sencilla sería:
Código MySQL:
Ver original
  1.     IF(TTotal<86400, SEC_TO_TIME(Ttotal), CONCAT((TTotal DIV 86400), '.', (SEC_TO_TIME(Ttotal &#37; 86400))))
  2. FROM (SELECT sum(time_to_sec(TiempoTotal)) TTotal FROM `servicio` WHERE Month(fecha) =06) T1;
Para que se entienda las funciones usadas, si el valor sumado de TTtotal fuese de 100.000, el resultado sería:

Código MySQL:
Ver original
  1. mysql> SELECT IF(100000<86400, SEC_TO_TIME(100000), CONCAT((100000 DIV 86400), '.', (SEC_TO_TIME(100000 % 86400)))) TiempoTotal;
  2. +-------------+
  3. | TiempoTotal |
  4. +-------------+
  5. | 1.03:46:40  |
  6. +-------------+
  7. 1 row in set (0.00 sec)
Y si fuese menor a 86400:
Código MySQL:
Ver original
  1. mysql> SELECT IF(11000<86400, SEC_TO_TIME(11000), CONCAT((11000 DIV 86400), '.', (SEC_TO_TIME(11000 % 86400)))) TiempoTotal;
  2. +-------------+
  3. | TiempoTotal |
  4. +-------------+
  5. | 03:03:20    |
  6. +-------------+
  7. 1 row in set (0.00 sec)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)