En PostgreSQL, podemos usar -
operador para restar uno o más minutos de un valor de tiempo.
Por valor de "tiempo", podría ser un time
real valor, una timestamp
, o un interval
. También podemos restar minutos de una date
valor o una date
y time
combinación.
Ejemplo
Podemos especificar intervalos al realizar operaciones aritméticas contra fechas y horas. Entonces, para restar uno o más minutos, podemos usar minute
o minutes
:
SELECT time '07:00' - interval '1 minute';
Resultado:
06:59:00
Plural
Y en forma plural:
SELECT time '07:00' - interval '45 minutes';
Resultado:
06:15:00
Marcas de tiempo
Y aquí está con una timestamp
valor:
SELECT timestamp '2030-01-20 09:00' - interval '30 minutes';
Resultado:
2030-01-20 08:30:00
Intervalos
También podemos restar minutos de un interval
:
SELECT interval '5 hours' - interval '90 minutes';
Resultado:
03:30:00
Fechas
Incluso podemos restar minutos de una date
valor:
SELECT date '2030-01-20' - interval '12 minutes';
Resultado:
2030-01-19 23:48:00
El resultado es una timestamp
valor.
Valores de fecha y hora combinados
También podemos agregar una date
y time
valor juntos, y restar minutos de eso:
SELECT date '2030-01-20' + time '01:00' - interval '18 minutes';
Resultado:
2030-01-20 00:42:00
Especificado en segundos
Alternativamente, podemos restar el número equivalente en segundos:
SELECT time '15:45' - interval '120 seconds';
Resultado:
15:43:00
Especificado en horas
Si los minutos a restar están en incrementos de 60 minutos, alternativamente podemos usar horas:
SELECT time '15:45' - interval '1 hour';
Resultado:
14:45:00
Valores negativos
Es posible realizar aritmética de fechas con valores negativos. Si usamos un valor negativo con el -
operador, el número de minutos especificado se agregará a la fecha/hora ingresada. Pero si lo usamos con el +
operador, luego se restará de la fecha/hora de entrada.
Ejemplo:
SELECT time '03:00' + interval '-2 minutes';
Resultado:
02:58:00