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

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