Maison > base de données > tutoriel mysql > Comment puis-je obtenir une liste complète des fuseaux horaires MySQL ?

Comment puis-je obtenir une liste complète des fuseaux horaires MySQL ?

Linda Hamilton
Libérer: 2024-11-03 00:10:02
original
1029 Les gens l'ont consulté

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

Zones horaires MySQL : un guide exhaustif

Question : Existe-t-il une liste complète des fuseaux horaires MySQL disponibles ?

Réponse : Oui, mais cela varie en fonction du système d'exploitation hôte. Pour accéder à la liste, vous devez charger les données de fuseau horaire dans MySQL.

Comment charger les données de fuseau horaire :

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Copier après la connexion

Remarque : cette commande est destiné aux systèmes Unix ; l'équivalent pour Windows n'est pas connu.

Liste des fuseaux horaires :

Une fois les données chargées, vous pouvez visualiser la liste des fuseaux horaires :

USE mysql;
SELECT * FROM `time_zone_name`;
Copier après la connexion

Heure locale de Calgary :

Pour afficher l'heure selon l'heure locale de Calgary, utilisez la syntaxe suivante :

SELECT CONVERT_TZ(CURRENT_TIMESTAMP, 'GMT', 'America/Edmonton');
Copier après la connexion

Supplémentaire Notes :

  • Les données de fuseau horaire occupent environ 5 Mo dans MySQL.
  • Pour décharger les données, exécutez les commandes suivantes et redémarrez MySQL :
TRUNCATE `time_zone` ;
TRUNCATE `time_zone_leap_second` ;
TRUNCATE `time_zone_name` ;
TRUNCATE `time_zone_transition` ;
TRUNCATE `time_zone_transition_type` ;
Copier après la connexion
  • Attention : Ne supprimez pas ces tableaux, car cela entraînerait des problèmes.

Mises à jour automatiques des fuseaux horaires :

Vous pouvez configurer un système automatisé pour mettre à jour les fuseaux horaires MySQL lorsque le fuseau horaire du système change.

Pour MySQL >= 5.6.6 :

mysql_config_editor set --login-path=client --host=localhost --user=root --password
Copier après la connexion

Pour MySQL < 5.6.6 :

Créez un fichier ~/.my.cnf avec le contenu suivant :

[client]
user=root
password=yourMysqlRootPW
Copier après la connexion

Ensuite, ajoutez le script suivant à crontab pour l'exécuter quotidiennement :

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

N'oubliez pas que ceci n'est pour la plupart pas testé. Si vous rencontrez des problèmes, signalez-les pour mettre à jour la réponse en conséquence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal