Maison >base de données >tutoriel mysql >Comment la fonction CONVERT_TZ() de MySQL gère-t-elle l'heure d'été ?
MySQL CONVERT_TZ() avec heure d'été
Lors du stockage d'alertes quotidiennes dans une base de données spécifiées dans des fuseaux horaires locaux définis par l'utilisateur, il est crucial de prendre en compte l’heure d’été (DST). Cet article explore l'utilisation de la fonction CONVERT_TZ() pour prendre en charge l'heure d'été et répond aux questions courantes liées à sa mise en œuvre.
Question 1 : Conversion de fuseau horaire avec l'heure d'été
Le La fonction CONVERT_TZ() prend en compte l'heure d'été lors de la spécification des noms de fuseau horaire. Par exemple, la conversion de l'heure UTC en heure des États-Unis/de l'Est devrait donner des résultats différents selon que l'heure d'été est en vigueur ou non. Cela correspond à votre compréhension selon laquelle CONVERT_TZ('00:00:00', 'UTC', 'US/Eastern') devrait renvoyer « 19:00:00 » le 1er janvier et « 20:00:00 » le 1er juillet.
Question 2 : Mises à jour de la table des fuseaux horaires MySQL
Si la fonction CONVERT_TZ() fonctionne correctement, il n'est généralement pas nécessaire de mettre à jour manuellement la table des fuseaux horaires de MySQL. MySQL gère une base de données interne qui stocke les informations de fuseau horaire et les met à jour si nécessaire en fonction des modifications apportées aux réglementations de fuseau horaire. Toutefois, si vous avez personnalisé les paramètres de votre fuseau horaire, il est recommandé de consulter périodiquement le tableau pour garantir son exactitude.
Question 3 : Valeurs nulles de CONVERT_TZ()
Si CONVERT_TZ() renvoie NULL, cela indique que les tables de fuseaux horaires MySQL ne sont pas configurées correctement. Vous pouvez le vérifier en exécutant la requête suivante :
SELECT CONVERT_TZ(now(), 'US/Eastern', 'US/Central');
Si cette requête renvoie NULL, cela suggère que les tables ne sont pas configurées. Pour résoudre ce problème, vous pouvez vous référer à la documentation MySQL pour obtenir des instructions sur la configuration des tables de fuseaux horaires.
Approche alternative
Si vous ne souhaitez pas vous fier au Dans les tables de fuseaux horaires MySQL, vous pouvez utiliser l'approche suivante :
Par exemple :
SELECT utc_timezone() - interval user_timezone_offset_in_hours hour FROM userinfo a WHERE user_id = 999;
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!