Heim >Datenbank >MySQL-Tutorial >Wie kann ich eine umfassende Liste der MySQL-Zeitzonen erhalten?

Wie kann ich eine umfassende Liste der MySQL-Zeitzonen erhalten?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 00:10:021008Durchsuche

How can I get a comprehensive list of MySQL time zones?

MySQL-Zeitzonen: Ein ausführlicher Leitfaden

Frage: Gibt es eine umfassende Liste der verfügbaren MySQL-Zeitzonen?

Antwort: Ja, aber es variiert je nach Host-Betriebssystem. Um auf die Liste zuzugreifen, müssen Sie Zeitzonendaten in MySQL laden.

So laden Sie Zeitzonendaten:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

Hinweis: Dieser Befehl ist für Unix-Systeme; das Äquivalent für Windows ist nicht bekannt.

Auflistung der Zeitzonen:

Sobald die Daten geladen sind, können Sie die Liste der Zeitzonen anzeigen:

USE mysql;
SELECT * FROM `time_zone_name`;

Ortszeit Calgary:

Um die Zeit in Calgarys Ortszeit anzuzeigen, verwenden Sie die folgende Syntax:

SELECT CONVERT_TZ(CURRENT_TIMESTAMP, 'GMT', 'America/Edmonton');

Zusätzlich Hinweise:

  • Die Zeitzonendaten nehmen in MySQL etwa 5 MB ein.
  • Um die Daten zu entladen, führen Sie die folgenden Befehle aus und starten Sie MySQL neu:
TRUNCATE `time_zone` ;
TRUNCATE `time_zone_leap_second` ;
TRUNCATE `time_zone_name` ;
TRUNCATE `time_zone_transition` ;
TRUNCATE `time_zone_transition_type` ;
  • Achtung: Löschen Sie diese Tabellen nicht, da dies zu Problemen führen kann.

Automatisierte Zeitzonenaktualisierungen:

Sie können ein automatisiertes System einrichten, um MySQL-Zeitzonen zu aktualisieren, wenn sich die Systemzeitzone ändert.

Für MySQL >= 5.6.6:

mysql_config_editor set --login-path=client --host=localhost --user=root --password

Für MySQL < 5.6.6:

Erstellen Sie eine ~/.my.cnf-Datei mit folgendem Inhalt:

[client]
user=root
password=yourMysqlRootPW

Fügen Sie dann das folgende Skript zu crontab hinzu, um es täglich auszuführen:

if [ `find /usr/share/zoneinfo -mtime -1 | grep -v '\.tab' | wc -l` -gt 0 ]; then
    echo "Updating MySQL timezone info"
    mysql_tzinfo_to_sql /usr/share/zoneinfo 2>/dev/null | mysql -u root mysql
    echo "Done!\n"
fi

Denken Sie daran, dass dies größtenteils ungetestet ist. Wenn Sie auf Probleme stoßen, melden Sie diese, um die Antwort entsprechend zu aktualisieren.

Das obige ist der detaillierte Inhalt vonWie kann ich eine umfassende Liste der MySQL-Zeitzonen erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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