A veces, es posible que necesite convertir el valor de tiempo de MySQL de una zona horaria a otra. Aquí se explica cómo cambiar la zona horaria de MySQL en la consulta mediante la función convert_tz().
Convertir zona horaria en consulta MySQL
Usaremos la función CONVERT_TZ para cambiar la zona horaria de MySQL en la consulta. Esta es la sintaxis de la función CONVERT_TZ.
convert_tz(value, from_timezone, to_timezone)
En la función anterior, debe proporcionar el valor de tiempo que desea convertir, la zona horaria desde la que desea convertir este valor y la zona horaria a la que desea convertirlo.
Puede especificar zonas horarias como compensaciones o nombres de zonas horarias.
Lectura adicional:Cómo cambiar la zona horaria del servidor MySQL
Aquí hay un ejemplo para convertir un valor de tiempo literal de UTC a la zona horaria EST, usando compensaciones de zona horaria de '+00:00' y '-05:00' para UTC y EST respectivamente.
mysql> select convert_tz('2020-09-17 03:00:00','+00:00','-05:00'); +-----------------------------------------------------+ | convert_tz('2020-09-17 03:00:00','+00:00','-05:00') | +-----------------------------------------------------+ | 2020-09-16 22:00:00 | +-----------------------------------------------------+
También puede especificar zonas horarias en lugar de compensaciones. Sin embargo, en este caso, deberá descargar e instalar las zonas horarias de MySQL en su servidor. Aquí hay un ejemplo para convertir EST a la zona horaria de París especificando nombres de zonas horarias en lugar de valores de compensación.
mysql> select convert_tz('2020-09-17 03:00:00','US/Eastern','Europe/Paris');
Lectura adicional:MySQL Mostrar índices en la base de datos
También puede convertir las funciones de fecha, hora y fecha y hora de MySQL en la función CONVERT_TZ. Aquí hay un ejemplo para cambiar la zona horaria de la hora actual obtenida usando la función NOW(), de UTC a EST
mysql> select convert_tz(now(),'+00:00','-05:00'); +-------------------------------------+ | convert_tz(now(),'+00:00','-05:00') | +-------------------------------------+ | 2020-09-17 04:45:07 | +-------------------------------------+
Lectura adicional:Cómo comparar bases de datos MySQL
Del mismo modo, también puede convertir columnas de fecha, hora y fecha y hora usando convert_tz. Aquí hay un ejemplo para cambiar la zona horaria de order_date columna en ventas tabla, de UTC a EST
mysql> select convert_tz(order_date,'+00:00','-05:00') from sales; +------------------------------------------+ | convert_tz(order_date,'+00:00','-05:00') | +------------------------------------------+ | 2020-05-03 19:00:00 | | 2020-05-04 19:00:00 | | 2020-05-05 19:00:00 | | ... | | 2020-05-13 19:00:00 | +------------------------------------------+
Con suerte, ahora puede cambiar la zona horaria de MySQL en la consulta y convertir los valores de fecha, hora y fecha y hora de una zona horaria a otra.
Ubiq facilita la visualización de datos en minutos y el monitoreo en paneles en tiempo real. ¡Pruébalo hoy!