No PostgreSQL, podemos usar o
+
operador para adicionar uma ou mais horas a um valor de tempo. Pelo valor "time", isso pode ser um
time
real valor, um timestamp
, ou um interval
. Também podemos adicionar horas a uma date
valor ou uma date
e time
combinação. Exemplo
Podemos especificar intervalos ao adicionar datas e horas. Por exemplo, podemos usar
time
ou hours
para adicionar uma ou mais horas:SELECT time '08:35' + interval '1 hour';
Resultado:
09:35:00
Plural
E no plural:
SELECT time '08:35' + interval '2 hours';
Resultado:
10:35:00
Carimbos de data e hora
E aqui está com um
timestamp
valor:SELECT timestamp '2030-01-20 08:35' + interval '2 hours';
Resultado:
2030-01-20 10:35:00
Intervalos
Também podemos adicionar horas a um
interval
:SELECT interval '23 hours' + interval '2 hours';
Resultado:
25:00:00
Datas
Podemos até adicionar horas a uma
date
valor:SELECT date '2030-01-20' + interval '3 hours';
Resultado:
2030-01-20 03:00:00
O resultado é um
timestamp
valor. Valores de data e hora combinados
Também podemos adicionar uma
date
e time
valor juntos, e adicionar horas a isso:SELECT date '2030-01-20' + time '02:35' + interval '3 hours';
Resultado:
2030-01-20 05:35:00
Especificado em minutos
Outra maneira de fazer isso é especificar o número equivalente em minutos:
SELECT time '15:45' + interval '60 minutes';
Resultado:
16:45:00
Ao fazer isso, não precisamos estar exatamente na hora. Por exemplo, poderíamos adicionar mais de uma hora, mas menos de duas:
SELECT time '15:45' + interval '90 minutes';
Resultado:
17:15: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 horas será subtraído da data/hora de entrada. Mas se usarmos com o -
operador, então ele será adicionado à data/hora de entrada. Exemplo:
SELECT time '03:00' - interval '-2 hours';
Resultado:
05:00:00