Maison >base de données >tutoriel mysql >La fonction CONVERT_TZ() de MySQL gère-t-elle l'heure d'été et comment puis-je résoudre les problèmes de fuseau horaire ?
MySQL CONVERT_TZ() avec considérations sur l'heure d'été
Question 1 :
Oui, votre compréhension est correcte. CONVERT_TZ() prend en compte l'heure d'été lors de la spécification du nom du fuseau horaire. Par exemple, CONVERT_TZ('00:00:00', 'UTC', 'US/Eastern') renverrait en effet '19:00:00' le 1er janvier et '20:00:00' le 1er juillet.
Question 2 :
Non, vous n'avez pas besoin de mettre à jour constamment La table des fuseaux horaires de MySQL pour maintenir à jour les décalages UTC du fuseau horaire. MySQL met automatiquement à jour la table à mesure que les règles de fuseau horaire changent.
Question 3 :
Le résultat de SELECT CONVERT_TZ('2004-01-01 12:00:00' ,'GMT','MET') donnant "NULL" pourrait indiquer que les tables de fuseaux horaires ne sont pas configurées correctement.
Pour vérifier cela, vous pouvez exécuter la requête suivante :
SELECT CONVERT_TZ(now(),'US/Eastern','US/Central');
Si le résultat n'est pas NULL, alors les tables de fuseaux horaires sont configurées correctement.
Calcul alternatif du décalage horaire :
Si vous n'avez pas configuré les tableaux de fuseaux horaires, vous pouvez toujours calculer l'heure décalage de fuseau horaire à l'aide de la requête suivante :
select utc_timezone() - interval user_timezone_offset_in_hours hour from userinfo a where user_id = 999;
Cependant, cette approche nécessite que vous mettiez à jour manuellement le décalage de fuseau horaire de l'utilisateur.
Obtention du fuseau horaire via JavaScript :
Pour les applications web, vous pouvez obtenir le fuseau horaire de l'utilisateur via JavaScript. Le lien suivant fournit un exemple de la façon de procéder :
[Détection de fuseau horaire JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl .DateTimeFormat)
Utilisation d'INTERVAL pour le temps Calculs :
Le mot-clé INTERVAL permet d'ajouter et de soustraire facilement des valeurs temporelles. Par exemple, la requête suivante soustrait 1 jour, 4 heures et 8 minutes de l'heure actuelle :
select now() a, now() - interval 1 day + interval 4 hour + interval 8 minute b;
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!