Hola, revisa los valores insertados en la tabla, hice el escenario que
describes y me da el resultado de 3:16 como indicas que debería dar.



El jue., 22 nov. 2018 a las 11:13, Micky Khan (<mcanc...@hotmail.com>)
escribió:

> "tiempo"
> "00:20:00"
> "00:35:00"
> "00:50:00"
> "00:13:00"
> "00:25:00"
> "00:53:00"
>
> Lo puse todo a un campo interval(gracias por la sugerencia) y la suma me
> sale "03:53:00" !!!!!!!!!!!!!!
> Deberia salir "03:16"
>
> Select sum(tiempo) from tiempos
>
> Ese fue mi query,...
>
> Por que me calcula mal ??
>
>
>
> ------------------------------
> *De:* Alvaro Herrera <alvhe...@2ndquadrant.com>
> *Enviado:* jueves, 22 de noviembre de 2018 14:59
> *Para:* Jaime Casanova
> *Cc:* MKHotmail; POSTGRES; pgsql-es-ayuda@lists.postgresql.org
> *Asunto:* Re: sumar horas y minutos
>
> Jaime Casanova escribió:
>
> > Como Álvaro hace notar lo que interesa aquí es saber el tipo de dato,
> > si es interval o time bastaría con un sum si es de tipo text tendrás
> > que hacer primero un cast y luego sumar
>
> Ojo que un time no se puede sumar de forma satisfactoria en general.  De
> partida, "time" representa hora del día. Ejemplo '13:00' es la 1pm de un
> cierto
> día.  Sumar dos time directamente no tiene sentido, y no hay operador:
>
> =# select time '13:00' + time '13:00';
> ERROR:  el operador no es único: time without time zone + time without
> time zone
> LÍNEA 1: select time '13:00' + time '13:00';
>                              ^
> SUGERENCIA:  No se pudo escoger el operador más adecuado. Puede ser
> necesario agregar conversiones explícitas de tipos.
>
> Ahora, podrías sumar un time con un interval (empezaste a tal hora y te
> demoraste cierto intervalo de tiempo).  Pero como time representa hora del
> día,
> obviamente el resultado no puede pasar de 24 horas ...  ejemplo:
>
> =# select time '13:00' + interval '13:00';
>  ?column?
> ──────────
>  02:00:00
> (1 fila)
>
> El resultado en este caso son las 2 am del día siguiente.
>
>
> Lo que sí funciona es sumar interval, que representan duraciones de algo
> (estuviste trece horas trabajando y después trece horas durmiendo):
>
> =# select interval '13:00' + interval '13:00';
>  ?column?
> ──────────
>  26:00:00
> (1 fila)
>
> --
> Álvaro Herrera                https://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>


-- 
Al_Hilario Company

Reply via email to