Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/02/2009, 12:02
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: 17 años, 1 mes
Puntos: 2658
Respuesta: Multiplicar más de 24 horas por un nº entero

Nunca podrás hacer la multiplicación de la forma que deseas, por la simple razón de que no existe un día que dure más que 23:59:59 horas. Un día solamente puede tener 86400 segundos. No más. Es un límite definido en el modelo de tipo de datos.
Lo que debes hacer es resolver tu problema manipulado el tipo de datos de modo de hacer posible esa multiplicación.
Una de las formas más sencillas es hacer una doble conversión: Primero a entero (entero, no decimal) y luego volverlo a transformar... a DATETIME, no a TIME. El time no te sirve.

La solución de tu problema puede variar respecto del DBMS que uses, de modo que mi sugerencia sería sumar la resultante de la conversión de la hora a minutos y luego convertir el resultado a un DATETIME, lo que te daría un valor más aproximado.
Para ser muy específico, la cosa sería en MySQL:
Código SQL:
Ver original
  1. SELECT SEC_TO_TIME((SUM(TIME_TO_SEC(hora)) * entero) totalHoras
  2. FROM tabla;

Esto funcionaría en MySQL, porque la función SEC_TO_TIME() puede manipular hasta 830 horas. Pero no sería admisible para almacenar el valor. En ese caso te recomiendo almamacenar el valor en segundos, o convertir los segundos en un DOUBLE con sólo dividirlos por 86400.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)