PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Subtrair minutos de um valor de tempo no PostgreSQL


No PostgreSQL, podemos usar o - operador para subtrair um ou mais minutos de um valor de tempo.

Pelo valor "time", isso pode ser um time real valor, um timestamp , ou um interval . Também podemos subtrair minutos de uma date valor ou uma date e time combinação.

Exemplo


Podemos especificar intervalos ao realizar aritmética em relação a datas e horas. Então, para subtrair um ou mais minutos, podemos usar minute ou minutes :
SELECT time '07:00' - interval '1 minute';

Resultado:
06:59:00

Plural


E no plural:
SELECT time '07:00' - interval '45 minutes';

Resultado:
06:15:00

Carimbos de data e hora


E aqui está com um timestamp valor:
SELECT timestamp '2030-01-20 09:00' - interval '30 minutes';

Resultado:
2030-01-20 08:30:00

Intervalos


Também podemos subtrair minutos de um interval :
SELECT interval '5 hours' - interval '90 minutes';

Resultado:
03:30:00

Datas


Podemos até subtrair minutos de uma date valor:
SELECT date '2030-01-20' - interval '12 minutes';

Resultado:
2030-01-19 23:48:00

O resultado é um timestamp valor.

Valores de data e hora combinados


Também podemos adicionar uma date e time valor juntos e subtrair minutos disso:
SELECT date '2030-01-20' + time '01:00' - interval '18 minutes';

Resultado:
2030-01-20 00:42:00

Especificado em segundos


Alternativamente, podemos subtrair o número equivalente em segundos:
SELECT time '15:45' - interval '120 seconds';

Resultado:
15:43:00

Especificado em horas


Se os minutos a serem subtraídos estiverem em incrementos de 60 minutos, podemos alternativamente usar horas:
SELECT time '15:45' - interval '1 hour';

Resultado:
14:45:00

Valores negativos


É possível realizar aritmética de datas com valores negativos. Se usarmos um valor negativo com o - operador, então o número especificado de minutos será adicionado à data/hora de entrada. Mas se usarmos com o + operador, então ele será subtraído da data/hora de entrada.

Exemplo:
SELECT time '03:00' + interval '-2 minutes';

Resultado:
02:58:00