Es soll beachtet werden, dass die Umwandlung für Daten von einer Zeitzone in einer anderen oder zu UTC kann nur dann zuverlässig durchgeführt werden, wenn Die Daten liegen in der Vergangenheit.
Zeitzonen-Definitionen ändern sich. Sie sind eine menschliche Definition, wie man von der "Sonnenuhr" abweicht, und diese Definitionen können und werden sich ständig ändern. Die einzige gültige Konvertierung ist für Daten in der Vergangenheit, da sich das nicht mehr ändert.
Jedes Datum in der Zukunft kann nicht zuverlässig konvertiert werden, da die Konvertierung nur die aktuell bekannte Zeitzonendefinition berücksichtigen kann.
Einfaches Beispiel: Lassen Sie uns nächstes Jahr einen Besprechungstermin in Berlin, Deutschland, erstellen. Wir sind uns heute einig, dass wir uns am 01.07.2014 um 12:00 Uhr am Alexanderplatz treffen wollen. Dieses Datum wird an diesem Tag um 10:00 UTC übersetzt.
Jetzt, wenn einige Regierung beschließt, die Sommerzeit 2014 zu deaktivieren, haben Sie ein Problem zu entscheiden, ob Sie um 12:00 Ortszeit oder um 11:00 Uhr Ortszeit angezeigt werden sollten, da die Konvertierung zurück von UTC wird zu einer anderen Ortszeit führen.
Wenn Sie das ursprüngliche Datum "2014-07-01 12:00 Europe/Berlin" gespeichert haben, sind Sie genau wie alle anderen um 12 Uhr mittags dort.
Hallo, ich weiß, dass es eine Weile her ist, dass du geantwortet hast, aber aus irgendeinem Grund funktioniert die select - Anweisung nicht für mich ... Ich habe das Dokument überprüft und kann 'SELECT CONVERT_TZ '(2004-01-01 12 : 00: 00 ',' + 00:00 ',' + 10:00 '); ', aber nicht das, was du oben beschrieben hast ... gibt es etwas, das mir fehlt? Ich bekomme dafür immer null. – KVISH
@kalvish, wahrscheinlich müssen Sie nur die Tabelle mysql.time_zone_name auffüllen. Versuchen Sie, diesen Befehl in der Shell auszuführen, um diese Tabelle zu füllen: mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u Wurzel mysql' –
SELECT CONVERT_TZ ('2017-02-15 08:00:00', "UTC", "CST"); Rückgabe null – wyx