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
Libérer: 2024-11-19 20:07:02
original
946 Les gens l'ont consulté

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');
Copier après la connexion

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;
Copier après la connexion

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;
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal