MySQL convertit d'un fuseau horaire à un autre

Mysql Convertit D Un Fuseau Horaire A Un Autre



'Les fuseaux horaires sont l'un des concepts complexes auxquels les développeurs doivent faire face. 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 verrons comment vous pouvez convertir une heure d'un fuseau horaire à un autre en utilisant MySQL.







Fonction MySQL Convert_Tz()

La fonction convert_tz() de MySQL nous permet de convertir d'un fuseau horaire à un autre. La syntaxe de la fonction est la suivante :



CONVERT_TZ ( dt,de_tz,à_tz )


La fonction prend la valeur datetime à convertir, le fuseau horaire à partir duquel vous souhaitez convertir et le convertisseur vers lequel 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 alors l'objet Datetime sélectionné dans le fuseau horaire cible.





Exemple 1

Vous trouverez ci-dessous un exemple illustrant comment convertir une chaîne horaire de EST en EAT à l'aide des décalages de fuseau horaire.

sélectionner
convert_tz ( '2022-08-08 22:22:22' ,
'+00:00' ,
'+03:00' ) comme temps1 ;



L'exemple de requête ci-dessus doit renvoyer un résultat :



| temps1 |
| ------------------- |
| 2022 -08-09 01 : 22 : 22 |

Exemple 2

Comme mentionné, nous pouvons spécifier le fuseau horaire cible par son nom. Cependant, cela nécessite que vous téléchargiez et installiez MySQL Timezones.

Vous pouvez exécuter la commande ci-dessous pour charger les fuseaux horaires.

$ mysql_tzinfo_to_sql / usr / partager / infozone | mysql -dans racine -p mysql


Si vous utilisez un fichier de fuseau horaire, exécutez la commande :

mysql_tzinfo_to_sql tz_file tz_name | mysql -dans racine -p mysql


Téléchargez les fichiers de fuseau horaire dans la ressource ci-dessous :

https: // dev.mysql.com / téléchargements / fuseaux horaires.html


Chargez le fichier :

mysql -dans racine -p mysql < nom de fichier


Vous pouvez ensuite spécifier le fuseau horaire cible avec le nom :

mysql > SÉLECTIONNER CONVERT_TZ ( '2022-10-10 14:34:00' , 'États-Unis/Est' , 'États-Unis/Centre' ) COMME temps ;


La requête ci-dessus doit renvoyer l'heure convertie dans le fuseau horaire cible sous la forme :

+---------------------+
| temps |
+---------------------+
| 2022 - dix - dix 13 : 3. 4 :00 |
+---------------------+
1 ligne dans Positionner ( 0,00 seconde )

Fin

Dans ce court article, nous avons expliqué comment utiliser la fonction convert_tz dans MySQL pour convertir l'heure d'un fuseau horaire à un autre.

Bon codage !!