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

Adicionar horas a um valor de tempo no PostgreSQL


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