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