Maison > Article > base de données > Comment puis-je utiliser efficacement les fuseaux horaires dans 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ée, vous pouvez afficher la liste des fuseaux horaires disponibles en exécutant :
USE mysql; SELECT * FROM `time_zone_name`;
En utilisant 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 < 5.6.6
Créer un fichier ~/.my.cnf :
user=root password=yourMysqlRootPW
Mettre à jour le script
Ajouter 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"
fiConseils 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.
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!