MySQL es converteix d'una zona horària a una altra

Mysql Es Converteix D Una Zona Horaria A Una Altra



'Les zones horàries són un dels conceptes complexos que han de tractar els desenvolupadors. Tot i que les eines i les implementacions en bases de dades relacionals tenen com a objectiu fer-les tolerables, poden resultar difícils i de vegades conduir a errors.

En aquest article, però, parlarem de com podeu convertir una hora d'una zona horària a una altra utilitzant MySQL.







Funció MySQL Convert_Tz().

La funció convert_tz() de MySQL ens permet convertir d'una zona horària a una altra. La sintaxi de la funció és la que es mostra:



CONVERT_TZ ( dt,de_tz,a_tz )


La funció pren el valor de data i hora a convertir, la zona horària des de la qual voleu convertir i la conversió a la qual voleu convertir.



MySQL us permet especificar les zones horàries com a noms o valors de compensació. Aleshores, la funció retornarà l'objecte Datetime seleccionat a la zona horària de destinació.





Exemple 1

A continuació es mostra un exemple que il·lustra com convertir una cadena horària d'EST a EAT  utilitzant els desplaçaments de la zona horària.

seleccionar
convertir_tz ( '2022-08-08 22:22:22' ,
'+00:00' ,
'+03:00' ) com temps 1;



La consulta d'exemple anterior hauria de retornar una sortida:



| temps 1 |
| ------------------- |
| 2022 -08-09 01: 22 : 22 |

Exemple 2

Com s'ha esmentat, podem especificar la zona horària objectiu pel seu nom. Tanmateix, això requereix que descarregueu i instal·leu MySQL Timezones.

Podeu executar l'ordre següent per carregar les zones horàries.

$ mysql_tzinfo_to_sql / usr / Compartir / info de zona | mysql -en arrel -p mysql


Si utilitzeu un fitxer de zona horària, executeu l'ordre:

mysql_tzinfo_to_sql tz_file nom_tz | mysql -en arrel -p mysql


Baixeu els fitxers de la zona horària al recurs següent:

https: // dev.mysql.com / descàrregues / timezones.html


Carregueu el fitxer:

mysql -en arrel -p mysql < nom de l'arxiu


A continuació, podeu especificar la zona horària de destinació amb el nom:

mysql > SELECCIONA CONVERT_TZ ( '2022-10-10 14:34:00' , 'EUA/Est' , 'EUA/Central' ) AS temps ;


La consulta anterior hauria de retornar l'hora convertida a la zona horària objectiu com:

+---------------------+
| temps |
+---------------------+
| 2022 - 10 - 10 13 : 34 :00 |
+---------------------+
1 fila en conjunt ( 0.00 sec )

Final

En aquesta breu publicació, vam parlar de com utilitzar la funció convert_tz a MySQL per convertir l'hora d'una zona horària a una altra.

Feliç codificació!!