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
Freigeben: 2024-11-03 00:10:02
Original
976 Leute haben es durchsucht

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
Nach dem Login kopieren

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`;
Nach dem Login kopieren

Ortszeit Calgary:

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

SELECT CONVERT_TZ(CURRENT_TIMESTAMP, 'GMT', 'America/Edmonton');
Nach dem Login kopieren

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` ;
Nach dem Login kopieren
  • 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
Nach dem Login kopieren

Für MySQL < 5.6.6:

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

[client]
user=root
password=yourMysqlRootPW
Nach dem Login kopieren

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!

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