MySQL se convierte de una zona horaria a otra

MySQL se convierte de una zona horaria a otra

“Las zonas horarias son uno de los conceptos complejos que los desarrolladores tienen que lidiar. Aunque las herramientas e implementaciones en las bases de datos relacionales tienen como objetivo hacerlas tolerables, pueden resultar desafiantes y, a veces, conducir a errores.

En este artículo, sin embargo, discutiremos cómo puede convertir un tiempo de una zona horaria a otra usando mysql."

Función mysql convert_tz ()

La función convert_tz () en mysql nos permite convertir de una zona horaria a otra. La sintaxis de la función es como se muestra:

Convert_tz (dt, from_tz, to_tz)


La función toma que se convierte el valor de fecha y hora, la zona horaria de la que desea convertir y el converso a la que desea convertir.

MySQL le permite especificar las zonas horarias como nombres o valores de compensación. La función luego devolverá el objeto DateTime seleccionado en la zona horaria de destino.

Ejemplo 1

A continuación se muestra un ejemplo que ilustra cómo convertir una cadena de tiempo de EST para comer usando las compensaciones de la zona horaria.

seleccionar
Convert_tz ('2022-08-08 22:22:22',
'+00: 00',
'+03: 00') como Time1;



La consulta de ejemplo anterior debe devolver una salida:

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

Ejemplo 2

Como se mencionó, podemos especificar la zona horaria de destino por su nombre. Sin embargo, esto requiere que descargue e instale MySQL TimeZones.

Puede ejecutar el comando a continuación para cargar las zonas horarias.

$ mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u root -p mysql


Si está utilizando un archivo de zona horaria, ejecute el comando:

mysql_tzinfo_to_sql tz_file tz_name | mysql -u root -p mysql


Descargue los archivos TimeZone en el recurso a continuación:

https: // dev.mysql.com/descargas/zonas horarias.html


Cargue el archivo:

mysql -u root -p mysql < file_name


Luego puede especificar la zona horaria de destino con el nombre:

mysql> seleccione Convert_tz ('2022-10-10 14:34:00', 'US/Eastern', 'US/Central') como tiempo;


La consulta anterior debe devolver el tiempo convertido a la zona horaria de destino como:

+---------------------+
| tiempo |
+---------------------+
| 2022-10-10 13:34:00 |
+---------------------+
1 fila en el set (0.00 seg)

Fin

En esta breve publicación, discutimos cómo usar la función convert_tz en mysql para convertir el tiempo de una zona horaria a otra.

Codificación feliz!!