Maison > Article > base de données > Comment convertir la date UTC en fuseau horaire local dans la requête de sélection MySQL ?
Conversion de la date UTC en fuseau horaire local dans la requête de sélection MySQL
Problème
Un MySQL La requête nécessite la conversion d'une colonne "displaytime", qui stocke les horodatages UTC, dans le fuseau horaire local. Cependant, l'utilisation de la fonction CONVERT_TZ() ne produit pas les résultats attendus.
Réponse
1. Vérifiez le message d'erreur
Vérifiez le message d'erreur pour déterminer pourquoi CONVERT_TZ() ne fonctionne pas.
2. Assurez-vous que les types de colonnes sont compatibles
CONVERT_TZ() nécessite que la colonne d'entrée soit un type de données d'horodatage ou de date. Vérifiez le type de données de la colonne "displaytime".
3. Utiliser la syntaxe correcte
La syntaxe correcte pour CONVERT_TZ() est :
CONVERT_TZ(timestamp, source_timezone, destination_timezone)
4. Exemple d'utilisation
Par exemple, pour convertir l'heure d'affichage de UTC en heure de l'Est des États-Unis (-05:00 GMT), utilisez :
SELECT CONVERT_TZ(displaytime, 'UTC', 'America/New_York');
5. Vérifiez la table des fuseaux horaires
Assurez-vous que les tables de fuseaux horaires MySQL sont correctement initialisées. Exécutez les commandes suivantes pour vérifier :
SELECT * FROM mysql.time_zone; SELECT * FROM mysql.time_zone_name;
6. Charger les données de fuseau horaire
Si les tables de fuseaux horaires sont vides, utilisez le programme mysql_tzinfo_to_sql pour les charger :
mysql_tzinfo_to_sql /usr/share/zoneinfo
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!