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