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

Converti un fuso orario UTC in postgresql in EST (ora locale)

Qui a Londra, siamo attualmente 1 ora avanti rispetto all'UTC. Quindi, se prendo il tuo fuso orario senza timestamp e dico che è in UTC, lo farò stampare per il mio fuso orario locale.

richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC');
        timezone        
------------------------
 2015-10-24 17:38:46+01
(1 row)

Ma vuoi "EST" che sembra essere da qualche parte nelle Americhe, a giudicare dal valore restituito. Puoi racchiudere l'espressione in una piccola funzione SQL se lo desideri.

richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC') AT TIME ZONE 'EST';
      timezone       
---------------------
 2015-10-24 11:38:46
(1 row)

Modifica:come farlo in una query

SELECT ((stored_timestamp AT TIME ZONE 'UTC') AT TIME ZONE 'EST') AS local_timestamp
FROM my_table;

Probabilmente vorrai ottenere un libro introduttivo su SQL se questo genere di cose ti sta causando problemi.