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
976 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!

source:php.cn
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