Maison > base de données > tutoriel mysql > Comment puis-je utiliser efficacement les fuseaux horaires dans MySQL ?

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

DDD
Libérer: 2024-11-05 18:46:02
original
338 Les gens l'ont consulté

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
Copier après la connexion

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

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

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')
Copier après la connexion

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
Copier après la connexion

MySQL < 5.6.6

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

user=root
password=yourMysqlRootPW
Copier après la connexion

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"
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.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal