2017-06-17 5 views
0

Um es kurz zu machen, habe ich bei der Eingabe in meine Postgres DB einen Zeitstempel im Format "2014-12-10T12: 00: 14 + 07: 00", und ich möchte 'timestampandtz' Postgres C extension (https://github.com/mweber26/timestampandtz) verwenden , aber ich weiß nicht, wie ich mich der Frage nach der Zeitzone annähern soll.Zeitstempel mit Zeitzone in Postgres DB mit C-Erweiterung speichern?

Da die Erweiterung die Eingabe mit den vollständigen Zeitzonennamen in zones.c vergleicht, weiß der Datentyp nicht, was er mit "+07: 00" anstelle von "@ Continent/City" machen soll, was er auf der Eingang.

Die Sache ist, ich muss die Stadt irgendwie von "+07: 00" herausziehen, weil ich die Sommerzeitauflösung benötige. Ich weiß auch, dass diese Zeitstempel nur aus einem Land stammen, also kann man vielleicht basierend darauf den "@ Continent/City" bestimmen.

Irgendein POV auf, wie man sich dieser Herausforderung nähert, würde sehr geschätzt, danke!

+0

PostgreSQL ist in der Lage, Konvertierungen ohne Probleme auch ohne Erweiterung zu verarbeiten. Ich habe versucht, PG 9.6 Befehl wie diese 'wählen ('2014-12-10T12: 00: 14 + 07: 00' :: Zeitstempel mit Zeitzone) in der Zeitzone 'Europa/Berlin' 'und es funktioniert. PostgreSQL verfügt über ein Flag in der Zeitzonen-Tabelle für die Anwendung von Regeln für die Sommerzeit. Also würde ich zuerst den Standardweg versuchen. – JosMac

+0

@JosMac Natürlich ist es das Richtige. Aber da ich die Stadt und somit die + xx -> Kontinent/Stadt-Beziehung nicht kenne, müsste ich selbst eine Übersetzung machen, da DST eine Voraussetzung ist ... – Rehhyo

Antwort

1

Ich habe Angst, dass Sie kein Glück haben. Es gibt keine Möglichkeit, einen Zeitversatz wie +07:00 automatisch in eine Zeitzone wie US/Eastern umzuwandeln.

Der Grund ist, dass der gleiche Zeitversatz zu verschiedenen Zeitzonen gehören kann. Zum Beispiel könnte -05:00 derzeit America/Lima oder US/Central sein, aber das sind verschiedene Zeitzonen – der ehemalige hat keine Sommerzeit.

Sie müssen sich also selbst eine Übersetzung einfallen lassen, z. wenn Sie wissen, zu welcher Zeitzone alle Ihre Daten mit einem bestimmten Zeitversatz gehören.

+0

Danke, dass du das geklärt hast. lch versuche etwas nachzudenken =) – Rehhyo

Verwandte Themen