RE: sumar horas y minutos

From: Micky Khan <mcanchas(at)hotmail(dot)com>
To: Alvaro Hilario <king314(at)gmail(dot)com>
Cc: "alvherre(at)2ndquadrant(dot)com" <alvherre(at)2ndquadrant(dot)com>, "jaime(dot)casanova(at)2ndquadrant(dot)com" <jaime(dot)casanova(at)2ndquadrant(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>, "pgsql-es-ayuda(at)lists(dot)postgresql(dot)org" <pgsql-es-ayuda(at)lists(dot)postgresql(dot)org>
Subject: RE: sumar horas y minutos
Date: 2018-11-22 15:49:05
Message-ID: HE1P190MB04756733E9931BBBE77E7419D7DB0@HE1P190MB0475.EURP190.PROD.OUTLOOK.COM
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

CREATE TABLE tiempos
(
tiempo interval
)
WITH (
OIDS=FALSE
);
ALTER TABLE tiempos
OWNER TO postgres;

Luego agrego :
00:20
00:35
00:50
00:13
00:25
00:53

Y todos se ponen :
"00:20:00"
"00:35:00"
"00:50:00"
"00:13:00"
"00:25:00"
"00:53:00"

Luego hago mi query :
Select sum(tiempo) from tiempos

Y me sale : "03:53:00"

________________________________
De: Alvaro Hilario <king314(at)gmail(dot)com>
Enviado: jueves, 22 de noviembre de 2018 15:33
Para: mcanchas(at)hotmail(dot)com
Cc: alvherre(at)2ndquadrant(dot)com; jaime(dot)casanova(at)2ndquadrant(dot)com; pgsql-es-ayuda; pgsql-es-ayuda(at)lists(dot)postgresql(dot)org
Asunto: Re: sumar horas y minutos

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 (<mcanchas(at)hotmail(dot)com<mailto:mcanchas(at)hotmail(dot)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 <alvherre(at)2ndquadrant(dot)com<mailto:alvherre(at)2ndquadrant(dot)com>>
Enviado: jueves, 22 de noviembre de 2018 14:59
Para: Jaime Casanova
Cc: MKHotmail; POSTGRES; pgsql-es-ayuda(at)lists(dot)postgresql(dot)org<mailto:pgsql-es-ayuda(at)lists(dot)postgresql(dot)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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Micky Khan 2018-11-22 15:56:06 RE: sumar horas y minutos
Previous Message Alvaro Hilario 2018-11-22 15:33:47 Re: sumar horas y minutos