sql >> Base de Datos >  >> RDS >> PostgreSQL

Restar minutos de un valor de tiempo en PostgreSQL

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