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
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`;
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');
Supplémentaire Notes :
TRUNCATE `time_zone` ; TRUNCATE `time_zone_leap_second` ; TRUNCATE `time_zone_name` ; TRUNCATE `time_zone_transition` ; TRUNCATE `time_zone_transition_type` ;
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
Pour MySQL < 5.6.6 :
Créez un fichier ~/.my.cnf avec le contenu suivant :
[client] user=root password=yourMysqlRootPW
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" fiN'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!