Vamos a ver como podemos sumar y restar un intervalo de horas y minutos a una fecha de tipo TIMESTAMP.
Vamos a trabajar en los ejemplos con la siguiente fecha: 2019-09-26 00:00:00
Sumar horas a fecha con PostgreSQL
SELECT
fecha::TIMESTAMP + '10 hr'::INTERVAL AS "suma_hora"
FROM
mi_tabla
--Resultado: "2019-09-26 10:00:00" |
SELECT
fecha::timestamp + '10 hr'::interval as "suma_hora"
FROM
mi_tabla
--Resultado: "2019-09-26 10:00:00"
Si en vez de sumarle 10 horas le sumaramos 16, tendría como resultado:
«2019-09-26 16:00:00»
Sumar horas y minutos a fecha con PostgreSQL
Opción 1:
SELECT
fecha::TIMESTAMP + '1 hr, 30 min'::INTERVAL AS "suma_hora_minutos"
FROM
mi_tabla
--Resultado: "2019-09-26 01:30:00"" |
SELECT
fecha::timestamp + '1 hr, 30 min'::interval as "suma_hora_minutos"
FROM
mi_tabla
--Resultado: "2019-09-26 01:30:00""
Opción 2:
SELECT
fecha::TIMESTAMP+ '1 hr'::INTERVAL + '30 min'::INTERVAL AS "suma_hora_minutos"
FROM
mi_tabla
--Resultado: "2019-09-26 01:30:00"" |
SELECT
fecha::timestamp+ '1 hr'::interval + '30 min'::interval as "suma_hora_minutos"
FROM
mi_tabla
--Resultado: "2019-09-26 01:30:00""
Opción 3:
SELECT
fecha::TIMESTAMP + '1:30 hr'::INTERVAL AS "suma_hora_minutos"
FROM
mi_tabla
--Resultado: "2019-09-26 01:30:00"" |
SELECT
fecha::timestamp + '1:30 hr'::interval as "suma_hora_minutos"
FROM
mi_tabla
--Resultado: "2019-09-26 01:30:00""
Restar Horas y minutos a una fecha con PostgreSQL:
Básicamente funciona de la misma manera que la suma pero de forma inversa.
SELECT
fecha::TIMESTAMP - '10 hr'::INTERVAL AS "resta_hora"
FROM
mi_tabla
--Resultado: "2019-09-25 14:00:00" |
SELECT
fecha::timestamp - '10 hr'::interval as "resta_hora"
FROM
mi_tabla
--Resultado: "2019-09-25 14:00:00"