PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Aggiungi ore a un valore temporale in PostgreSQL

In PostgreSQL, possiamo usare il + operatore per aggiungere una o più ore a un valore temporale.

Per valore "tempo", questo potrebbe essere un time effettivo valore, un timestamp o un interval . Possiamo anche aggiungere ore a una date valore o una date e time combinazione.

Esempio

Possiamo specificare gli intervalli quando si aggiungono date e orari. Ad esempio, possiamo usare hour o hours per aggiungere una o più ore:

SELECT time '08:35' + interval '1 hour';

Risultato:

09:35:00

Plurale

E al plurale:

SELECT time '08:35' + interval '2 hours';

Risultato:

10:35:00

Data e ora

Ed eccolo qui con un timestamp valore:

SELECT timestamp '2030-01-20 08:35' + interval '2 hours';

Risultato:

2030-01-20 10:35:00

Intervalli

Possiamo anche aggiungere ore a un interval :

SELECT interval '23 hours' + interval '2 hours';

Risultato:

25:00:00

Date

Possiamo anche aggiungere ore a una date valore:

SELECT date '2030-01-20' + interval '3 hours';

Risultato:

2030-01-20 03:00:00

Il risultato è un timestamp valore.

Valori di data e ora combinati

Possiamo anche aggiungere una date e time valore insieme e aggiungi le ore:

SELECT date '2030-01-20' + time '02:35' + interval '3 hours';

Risultato:

2030-01-20 05:35:00

Specificato in minuti

Un altro modo per farlo è specificare il numero equivalente in minuti:

SELECT time '15:45' + interval '60 minutes';

Risultato:

16:45:00

Quando lo facciamo, non abbiamo bisogno di essere esattamente sull'ora. Ad esempio, potremmo aggiungere più di un'ora, ma meno di due:

SELECT time '15:45' + interval '90 minutes';

Risultato:

17:15:00

Valori negativi

È possibile eseguire aritmetica della data con valori negativi. Se utilizziamo un valore negativo con + dall'operatore, il numero di ore specificato verrà sottratto dalla data/ora di input. Ma se lo usiamo con - operatore, verrà aggiunto alla data/ora di input.

Esempio:

SELECT time '03:00' - interval '-2 hours';

Risultato:

05:00:00