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

Reply via email to