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