Maison > Article > base de données > Comment travailler avec les fuseaux horaires dans MySQL ?
MySQL prend en charge un large éventail de fuseaux horaires, vous permettant de stocker et de manipuler des dates et des heures dans diverses régions géographiques.
MySQL >= 5.7
Pour afficher une liste exhaustive des fuseaux horaires MySQL, exécutez la requête suivante :
<code class="sql">SELECT * FROM mysql.time_zone_name;</code>
MySQL < 5.7
Pour charger les données de fuseau horaire à partir du système et afficher la liste, exécutez ces commandes :
<code class="bash">mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
<code class="sql">USE mysql; SELECT * FROM `time_zone_name`;
Pour afficher l'heure locale de Calgary, vous pouvez définir la variable système time_zone :
<code class="sql">SET time_zone = 'America/Edmonton';
Remarque : Remplacez « Amérique/Edmonton » par l'identifiant de fuseau horaire approprié pour Calgary.
Si vous constatez que les fuseaux horaires ne sont pas disponibles dans MySQL, exécutez la commande suivante :
<code class="bash">mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Cette commande charge les données de fuseau horaire du système dans MySQL.
Mises à jour régulières
Pour garantir que les fuseaux horaires MySQL sont automatiquement mis à jour lorsque les fuseaux horaires du système changent, ajoutez le script suivant à une tâche cron :
#!/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!"
fiCe 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!