Vous travaillez avec une requête MySQL qui contient une colonne "displaytime" qui stocke les horodatages au format UTC. Cependant, vous devez afficher les horodatages dans le fuseau horaire local. La fonction CONVERT_TZ() ne fonctionne pas comme prévu.
Pour convertir un horodatage UTC en fuseau horaire local à l'aide de la fonction CONVERT_TZ(), vous devez spécifier les abréviations de fuseau horaire pour les deux les fuseaux horaires UTC et locaux. La syntaxe correcte est la suivante :
SELECT CONVERT_TZ(displaytime, 'UTC', 'LOCAL')
Exemple de requête
WHERE displaytime >= '2012-12-01 00:00:00' AND displaytime <= '2013-02-22 23:59:59' AND ct.organizationId IN ( SELECT t.organizationId FROM organization_ AS t JOIN organization_ AS p ON t.treePath LIKE CONCAT(p.treePath, '%') WHERE p.organizationId = 10707 )
Requête modifiée :
WHERE CONVERT_TZ(displaytime, 'UTC', 'LOCAL') >= '2012-12-01 00:00:00' AND CONVERT_TZ(displaytime, 'UTC', 'LOCAL') <= '2013-02-22 23:59:59' AND ct.organizationId IN ( SELECT t.organizationId FROM organization_ AS t JOIN organization_ AS p ON t.treePath LIKE CONCAT(p.treePath, '%') WHERE p.organizationId = 10707 )
Si CONVERT_TZ() ne fonctionne pas, cela peut être dû à des tables de fuseaux horaires manquantes ou vides. Vous pouvez initialiser les tables de fuseaux horaires à l'aide du programme mysql_tzinfo_to_sql.
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!