Wie Sie wissen, Zeitzonen von einen timestamp in postgresql 8.3
Ich bin mit postgresql 8.3 und ich würde gerne wissen, die Zeitzone für einen bestimmten Zeitstempel (eine Spalte in einer Tabelle).
In den Unterlagen, die ich gefunden habe, das Schlüsselwort "Zeitzone"
Aber ich verstehe nicht, wie es in einer Spalte der Tabelle. Ist es möglich ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, Sie haben eine Spalte mit dem Namen
ct
was hat der TypTIMESTAMPTZ
in der Tabellet
. Dann können Sie verwenden:um den offset der Zeitzone in Sekunden. Es gibt Sie
3600
ausUTC
/GMT
das bedeutet, daß entwederGMT+1
,CET
oder was auch immer. Der Wert, der zurückgegeben wird, hängt von IhremTIMEZONE
Einstellung.Beispiel (ich Lebe in Deutschland, aktuelle Zeitzone ist
GMT+1
/CET
):Wie Sie sehen können, es gibt das Videosignal immer mit irgendetwas in der konfigurierten Zeitzone. Also den offset bekommst du mit
EXTRACT(TIMEZONE FROM ...)
hängt von IhremTIMEZONE
Einstellung. Die Zeitzone, die aufINSERT
ist verloren, denn es ist nicht Wert, gerettet zu werden. Das was zählt ist, dass alles richtig ist und das sollte nicht davon abhängen, ob dieTIMEZONE
Einstellung. PostgreSQL macht das sehr gut."PostgreSQL macht das sehr gut."
Ich wirklich wie PostgreSQL, aber in diesem speziellen feature es nicht tun es auch. Timezone ist nicht nur der offset zur GMT. Timezone ist eng an die politischen Regeln bedeutet, dass die Sommerzeit. Denn es gibt viele Zeitzonen mit dem gleichen Zeitabstand und die unterschiedlichen Sommerzeit-Regeln - bei PG vergisst original timezone verliert er die Informationen in der Tat.
Mir persönlich store-original-timezone separat für die Tage, die Sie Fragen in form von 'America/New_York'. Wenn jemand hat eine bessere Lösung - es ist willkommen.
In Postgres die ursprünglichen Eingabe-Zeitzone ist verloren, auch wenn Sie speichern Sie die datetime-Wert in timestamp with time zone Daten geben.
Nachteil:
Sagen, wenn ich die datetime-Daten(zusammen mit timezone info), wenn Menschen nutzen Ihre facebook-app auf der ganzen Welt. Nun Speicher ich diese Werte in timestamp with time zone Daten geben. Einem zufälligen Tag will ich sehen, wie stark Menschen Ihre FB-app am morgen im Vergleich zu in der Nacht und wenn der gleiche trend ist in den Ländern.
Aber warten Sie, ich habe nicht mehr die Zeitzone Informationen.
Sitzt in DC, was ich sehen kann ist, wie sich die Aktivität einer Verlegung aus der ganzen Welt, wenn es wurde 10 Uhr EST.
Vorteil:
Wenn Sie vergleichen zwei datasources mit Zeitstempel der gleichen Zeitzone, aber der eine war gespeichert, was die lokale Uhr zeigte, während andere gespeichert durch Umwandlung in UTC. Hier, was Sie tun können, ist, einfach speichern Sie den Zeitstempel in der timestamptz Datentyp und sagen, welche Zeitzone er gehört, und dann können Sie vergleichen Sie Sie leicht.
Zum Beispiel
Eine Aktivität, die in der PST-Zeitzone wurde aufgenommen bei
2014-10-19 10:23:54
. Jetzt zwei separaten Datenquellen gespeichert sind, separat. Datasource1 gespeichert als2004-10-19 10:23:54 PST
, Datasource2 gespeichert als2014-10-19 18:23:54 UTC
. Wenn Sie gespeichert sind, in die timestamptz - Datentyp ist, wird es zeigen Ihnen die gleichen Zeit, wenn Sie tunDa die timestampz ist recoreded für einen Augenblick in der Zeit, in ZULU/GMT-Zeit, die nie ändert und es ist ausgeglichen (da es die Referenz), es ist nicht notwendig, um die Aufzeichnung der Zeitzone. Sie müssen nur addition/Subtraktion den offset, um die GEOPOLITISCHEN time zone offset in der VERGANGENHEIT, GEGENWART oder ZUKUNFT.
Du TUN müssen wissen, die genaue GEOPOLITISCHE TIMEZONE in Wirkung auf die Lage der Zeit gilt im moment gilt für VERGANGENHEIT und GEGENWART Zwecke.
Für zukünftige Fälle in der Zeit Zwecke, diese bekommt mehr problematische, vielleicht. Trotzdem sollte es aber funktionieren. Denke, der Sonnenuntergang. Wenn einige Ort der Erde hat ein Sonnenuntergang @ midnight ZULU-Zeit (irgendwo über dem Atlantik oder Nord-Kanada nach Alaska in winter in der nördlichen Hemisphäre), und dass die Zeit wird angenommen, dass 8 PM ( -4:00 offset) in diesem Ort auf den moment, in dem Sie es aufnehmen in das system und du nimmst es als "winter-date-in-Zukunft-8:00 PM" wird festgehalten, wie die 24:00 GMT in der Datenbank.
Nun, dass die Lage auf der Erde wird ein Haar seine *ss und Daumen seine Nase an den geographischen Bezug time-reckoning, und fordert Ihre Zeit - zone, '+11:55'. Deshalb ist es für Sie, wenn es Mitternacht in England (Mitternacht GMT), die Sie aufrufen MÖCHTEN, ist es 11:55 UHR, Total Ihre Wahl. Wenn alle computer anzeigen möchte, dass ein Datum in der Zukunft für diese Position (d.h., dass geopolitische Zeitzone), Sie nennen es 11:55 UHR, wenn auch die Sonne ist Einstellung. Und natürlich, es WIRD der Tag VOR dem Tag als Sie es geplant 🙂 Ihr problem.