Frage 1: Berücksichtigung der Sommerzeit
Ja, Sie haben Recht. Durch die Angabe des Zeitzonennamens (z. B. „US/Eastern“) berücksichtigt CONVERT_TZ() die Sommerzeit. Der Aufruf von CONVERT_TZ('00:00:00', 'UTC', 'US/EASTERN') gibt im Januar „19:00:00“ zurück und erkennt, dass die Eastern Time um 5 Stunden hinter UTC liegt. Während der Sommerzeit wäre das Ergebnis „20:00:00“, da die Eastern Time eine Stunde vorrückt.
Frage 2: Aktualisierung der Zeitzonentabelle
Wenn Sie verlassen sich ausschließlich auf den Zeitzonennamen und müssen die Zeitzonentabelle nicht ständig aktualisieren, um die Offsets auf dem neuesten Stand zu halten. CONVERT_TZ() berücksichtigt die aktuellen Zeitzoneneinstellungen und Sommerzeitregeln.
Frage 3: Fehlerbehebung bei NULL-Rückgaben
Die NULL-Rückgabe in Ihrer Beispielabfrage (CONVERT_TZ(' 2004-01-01 12:00:00','GMT','MET')) könnte tatsächlich sein verursacht durch fehlende Zeitzonentabellen. Um dies zu überprüfen, führen Sie die folgende Abfrage aus:
SELECT CONVERT_TZ(now(),'US/Eastern','US/Central');
Wenn dies auch NULL zurückgibt, weist dies darauf hin, dass die Zeitzonentabellen nicht ordnungsgemäß eingerichtet wurden.
Zusätzliche Tipps
Anstatt Zeit direkt zu addieren oder zu subtrahieren, können Sie das Schlüsselwort INTERVAL in MySQL verwenden, um Zeitberechnungen durchzuführen. Sie könnten beispielsweise einen Tag abziehen und vier Stunden hinzufügen, indem Sie Folgendes verwenden:
now() - interval 1 day + interval 4 hour
Das obige ist der detaillierte Inhalt vonWie geht die CONVERT_TZ()-Funktion von MySQL mit Zeitzonen und Sommerzeit um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!