«Les fuseaux horaires sont l'un des concepts complexes que les développeurs doivent gérer. Bien que les outils et les implémentations dans les bases de données relationnelles visent à les rendre tolérables, ils peuvent s'avérer difficiles et parfois conduire à des erreurs.
Dans cet article, cependant, nous discuterons de la façon dont vous pouvez convertir un temps d'un fuseau horaire à un autre en utilisant MySQL."
Fonction mysql convert_tz ()
La fonction convert_tz () dans mysql nous permet de nous convertir d'un fuseau horaire à un autre. La syntaxe de fonction est comme indiqué:
Convert_tz (dt, from_tz, vers_tz)
La fonction prend la valeur DateTime à convertir, le fuseau horaire à partir duquel vous souhaitez convertir et le converti auquel vous souhaitez convertir.
MySQL vous permet de spécifier les fuseaux horaires sous forme de noms ou de valeurs de décalage. La fonction renverra ensuite l'objet DateTime sélectionné dans le fuseau horaire cible.
Exemple 1
Vous trouverez ci-dessous un exemple qui illustre comment convertir une chaîne de temps de EST à manger en utilisant les décalages du fuseau horaire.
sélectionner
convert_tz ('2022-08-08 22:22:22',
'+00: 00',
'+03: 00') comme time1;
L'exemple de requête ci-dessus doit renvoyer une sortie:
| Time1 |
| ------------------- |
| 2022-08-09 01: 22: 22 |
Exemple 2
Comme mentionné, nous pouvons spécifier le fuseau horaire cible par son nom. Cependant, cela vous oblige à télécharger et à installer les fuseaux horaires MySQL.
Vous pouvez exécuter la commande ci-dessous pour charger les fuseaux horaires.
$ mysql_tzinfo_to_sql / usr / share / zoneInfo | mysql -u root -p mysql
Si vous utilisez un fichier de fuseau horaire, exécutez la commande:
mysql_tzinfo_to_sql tz_file tz_name | mysql -u root -p mysql
Téléchargez les fichiers du fuseau horaire dans la ressource ci-dessous:
https: // dev.mysql.com / téléchargements / fuseaux horaires.html
Chargez le fichier:
mysql -u root -p mysql < file_name
Vous pouvez ensuite spécifier le fuseau horaire cible avec le nom:
MySQL> SELECT CONVERT_TZ ('2022-10-10 14:34:00', 'US / Eastern', 'US / Central') As Time;
La requête ci-dessus doit renvoyer le temps converti en fuseau horaire cible comme:
+---------------------+
| Temps |
+---------------------+
| 2022-10-10 13:34:00 |
+---------------------+
1 ligne en jeu (0.00 sec)
Fin
Dans ce court article, nous avons discuté de la façon d'utiliser la fonction convert_tz dans MySQL pour convertir l'heure d'un fuseau horaire à un autre.
Codage heureux!!