"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je utiliser efficacement les fuseaux horaires dans MySQL ?

Comment puis-je utiliser efficacement les fuseaux horaires dans MySQL ?

Publié le 2024-11-14
Parcourir:909

How Can I Effectively Use Time Zones in MySQL?

Zones horaires MySQL

Vous vous interrogez sur la prise en charge des fuseaux horaires dans MySQL ? Voici un guide complet pour vous aider à comprendre et à utiliser efficacement les fuseaux horaires MySQL :

Liste exhaustive des fuseaux horaires MySQL

Par défaut, MySQL n'inclut pas d'informations sur le fuseau horaire. Pour charger les données de fuseau horaire dans MySQL, exécutez la commande suivante :

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

Une fois chargé, vous pouvez afficher la liste des fuseaux horaires disponibles en exécutant :

USE mysql;
SELECT * FROM `time_zone_name`;

Utilisation des fuseaux horaires

Pour spécifier un fuseau horaire pour une valeur d'horodatage, utilisez la fonction CONVERT_TZ() :

CONVERT_TZ('2012-06-07 12:00:00', 'GMT', 'America/New_York')

Cela convertira l'horodatage en heure locale de Calgary.

Chargement automatique des données de fuseau horaire

Pour mettre à jour automatiquement les fuseaux horaires MySQL lorsque le fuseau horaire du système change, configurez MySQL pour autoriser la connexion root sans mot de passe :

MySQL >= 5.6.6

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

MySQL

Créez un fichier ~/.my.cnf :

user=root
password=yourMysqlRootPW

Script de mise à jour

Ajoutez le script suivant à crontab pour mettre à jour quotidiennement les fuseaux horaires :

#!/bin/bash
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

Conseils supplémentaires

  • Les informations sur les fuseaux horaires occupent environ 5 Mo dans MySQL.
  • Évitez de supprimer les tables de fuseaux horaires ; utilisez plutôt TRUNCATE.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3