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

Konverter en UTC-tidszone i postgresql til EST (lokal tid)

Her i London er vi i øjeblikket 1 time foran UTC. Så - hvis jeg tager din tidszone uden tidsstempel og siger, at den er i UTC, får jeg den udskrevet for min lokale tidszone.

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

Men du vil have "EST", som ser ud til at være et sted i Amerika, at dømme efter den returnerede værdi. Du kan pakke udtrykket ind i en lille SQL-funktion, hvis du vil.

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)

Rediger:hvordan gør man det i en forespørgsel

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

Du vil sikkert gerne have en introduktionsbog om SQL, hvis denne slags ting volder dig problemer.



  1. Rails Activerecord/Postgres tidsformat

  2. Indsæt NULL-værdi i INT-kolonnen

  3. vælg max- og min-værdier for hver x-mængde af rows-postgresql

  4. #1111 - Ugyldig brug af gruppefunktion