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 originalSELECT SEC_TO_TIME((SUM(TIME_TO_SEC(hora)) * entero) totalHoras
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.