Heim > Datenbank > MySQL-Tutorial > Wie kann MySQL mit mehrdeutigen Datumsangaben während der Sommerzeitumstellung umgehen?

Wie kann MySQL mit mehrdeutigen Datumsangaben während der Sommerzeitumstellung umgehen?

Mary-Kate Olsen
Freigeben: 2024-12-25 20:29:09
Original
714 Leute haben es durchsucht

How Can MySQL Handle Ambiguous Datetimes During Daylight Saving Time Transitions?

Umgang mit mehrdeutigen Datumszeiten mit Sommerzeit in MySQL

Wenn Sommerzeit (DST) eintritt, gibt es eine mehrdeutige Stunde, in der es schwierig ist um den vorgesehenen Zeitbezug zu ermitteln. Beispielsweise kann in der Zeitzone Amerika/New York 1:30 Uhr während der Übergangszeit im Herbst zweimal auftreten.

Problem:

Die Felder DATETIME und TIMESTAMP von MySQL sind eindeutig Herausforderungen, wenn es darum geht, mit diesen zwiespältigen Zeiten umzugehen. DATETIME-Felder speichern Datums- und Uhrzeitangaben unverändert, ohne Berücksichtigung von Zeitzonen oder Sommerzeitumrechnungen. TIMESTAMP-Felder konvertieren eingegebene Zeitstempel in UTC und umgekehrt.

Lösung:

1. Verwenden Sie DATETIME-Felder:

Konvertieren Sie Zeitstempel in UTC, bevor Sie sie in DATETIME-Feldern speichern. Dadurch wird sichergestellt, dass Sie die Kontrolle über die genaue UTC-Zeit zum Speichern haben.

2. Interpretation der abgerufenen Daten:

Interpretieren Sie aus DATETIME-Feldern abgerufene Zeitstempel als UTC-Zeitstempel außerhalb von MySQL. Dies verhindert Mehrdeutigkeiten, die durch die Datums-/Uhrzeitfunktionen von MySQL entstehen.

3. Vermeiden Sie TIMESTAMP-Felder:

Vermeiden Sie die Verwendung von TIMESTAMP-Feldern, da diese zu inkonsistenten Konvertierungen zwischen Ortszeit und UTC führen können, wenn die Sommerzeit beteiligt ist.

Implementierung:

Abrufen Daten:

// Example using PHP's DateTime class
$timestamp = strtotime($db_timestamp . ' UTC');
Nach dem Login kopieren

Speichern von Daten:

// Example using PHP's DateTime class
$UTCDateTime = new DateTime('2009-11-01 1:30:00 EST');
$db_timestamp = $UTCDateTime->format('Y-m-d H:i:s');
Nach dem Login kopieren

Überlegungen:

  • MySQL Datums-/Uhrzeitfunktionen können DST-Grenzen nicht zuverlässig verarbeiten, wenn Daten in DST gespeichert werden Zeitzonen.
  • Geben Sie den Offset in DATETIME-Feldern an, der von MySQL ignoriert wird.

Das obige ist der detaillierte Inhalt vonWie kann MySQL mit mehrdeutigen Datumsangaben während der Sommerzeitumstellung umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage