wake-up-neo.net

Konvertieren einer UTC-Zeitzone in Postgresql nach EST (Ortszeit)

Ich bin neu bei PostgreSQL und habe mich gefragt, ob es eine direkte Möglichkeit gibt, die Zeitstempelwerte einer Tabelle mithilfe einer Funktion in eine andere Zeitzone zu konvertieren. In meinem Fall ist es UTC zu EST.

Dies sind die Werte, die ich zum Beispiel in EST konvertieren muss (nicht nur ein Wert, sondern alle Werte in der Tabelle).

date
-------------------
2015-10-24 16:38:46
2016-01-19 18:27:00
2016-01-24 16:14:34
2016-02-09 23:05:49
2016-02-11 20:46:26
21
Subu Ganesh

Hier in London sind wir derzeit 1 Stunde vor UTC. Wenn ich also Ihre Zeitzone ohne Zeitstempel nehme und sage, dass es in UTC ist, werde ich sie für meine lokale Zeitzone ausdrucken.

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

Aber Sie wollen "EST", das sich irgendwo in Amerika zu befinden scheint, gemessen am zurückgegebenen Wert. Sie können den Ausdruck in eine kleine SQL-Funktion einschließen, wenn Sie möchten.

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)

Bearbeiten: wie es in einer Abfrage gemacht wird

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

Möglicherweise möchten Sie ein Einführungsbuch über SQL erhalten, wenn diese Art von Problemen zu Problemen führt.

31
Richard Huxton

Ähnlich Ausführen 

SELECT '2015-10-24 16:38:46'::timestamp AT time zone 'EST';

timezone
------------------------
 2015-10-24 21:38:46+00
(1 row)
8
Kevin Li

Sie sollten immer die Hauptreferenz eines Datums in UTC speichern und diese entweder in Ihren Abfragen in eine Zeitzone konvertieren oder die bestimmte Zeitzonenversion der Daten in einer anderen Spalte speichern. Der Grund dafür ist, dass es schnell und einfach ist, ein Datum von UTC in eine andere Zeitzone zu konvertieren, solange Sie wissen, dass die Zeitzone, in der es gespeichert ist, UTC ist. Es nimmt die Vermutungsarbeit heraus. Alternativ können Sie das Datum MIT der Zeitzone speichern.

Wenn Sie über eine Operation verfügen, die das Datum automatisch mit der Systemuhr Ihres Servers auffüllt, können Sie entweder A: Ändern Sie die Operation in UTC-Zeit B: Ändern Sie die Systemuhr auf dem Server in UTC

0
user33072