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 ?

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 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-19 20:07:02828parcourir

Does MySQL's CONVERT_TZ() Function Handle Daylight Saving Time, and How Can I Troubleshoot Time Zone Issues?

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!

Déclaration:
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