convert_tz mysql ubuntu-12.04 convert-tz

convert_tz mysql



convert_tz devuelve nulo (8)

1) En Windows, ahora no hay ninguna carpeta de datos en C:/Program Files/MySQL/ como en otras respuestas.

2) En ese caso, busque C:/ProgramData/MySQL/MySQL Server 5.x/Data/mysql . En general esta carpeta está oculta y no verá C:/ProgramData/ algunas veces.

3) Cambie la configuración en la pestaña Ver para ver los archivos y carpetas ocultos como se explica aquí https://irch.info/index.php?pg=kb.page&id=133

4) Detenga el servicio MySQL buscando "servicios" en el botón de Inicio de Windows.

5) A continuación, descomprima timezone_2017c_posix.zip y luego copie los archivos en él (copie los archivos directamente, no copie la carpeta completa) y péguelo en C:/ProgramData/MySQL/MySQLServer5.x/Data/mysql/

6) Para MySQL 5.7, timezone_2017c_posix.zip solo dará un archivo .sql después de descomprimir y puede que no resuelva el problema. Así que adelante y descargue el archivo zip para 5.6 incluso si está ejecutando MySQL 5.7 y copie esos archivos en C:/ProgramData/MySQL/MySQL Server 5.x/Data/mysql/

7) Reinicia el servidor MySQL. Para verificar si CONVERT_TZ () está funcionando, ejecute esta consulta SQL.

SELECT CONVERT_TZ(''2004-01-01 12:00:00'',''UTC'',''Asia/Jakarta''); y verifique la salida no nula.

Sé que esto suena estúpido, pero cuando uso

SELECT CONVERT_TZ(''2004-01-01 12:00:00'',''UTC'',''Asia/Jakarta'') AS time

Emite NULL. Estoy usando MySQL Workbench en Ubuntu 12.04 64 bit, y funciona en mi otra laptop / os (también usando MySQL Workbench).


Además del entorno de Windows, puede establecer la Zona horaria

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

En el entorno de Windows ,

1. download Time zone description tables from http://dev.mysql.com/downloads/timezones.html

2. Stop MySQL server

3. Put then inside Mysql installation package (es decir, C: / Program Files / MySQL / data / mysql) `

4. Start MySQL server

.. Tu trabajo ha terminado ..

Si todavía está obteniendo NULL para CONVERT_TZ descargue estas tablas de la base de datos e insértelas en la base de datos de MySQL http://www.4shared.com/folder/Toba2qu-/Mysql_timezone.html

Ahora tu problema será resuelto ... :)


Encontré este hilo después de pasar algún tiempo tratando de descubrir por qué después de ejecutar el comando en la respuesta aceptada (que es la misma en el sitio dev de MySQL) el comando no pudo convertir entre zonas horarias como

SELECT CONVERT_TZ(''2004-01-01 12:00:00'',''UTC'',''MET'') AS time

Resulta que en OS X hay dos archivos que causan problemas: /usr/share/zoneinfo/Factory y /usr/share/zoneinfo/+VERSION .

La solución ... mover temporalmente estos archivos a una ubicación diferente como /usr/share/zoneinfo/.bak/ permite el comando

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

para completar completamente toda la información de la zona horaria esperada.

Esto puede o no ser un error en mi versión de MySQL instalada:

$ mysql --version mysql Ver 14.14 Distrib 5.6.11, for osx10.6 (x86_64) using EditLine wrapper

También estoy operando en STRICT_MODE .

En cualquier caso, espero que esto ahorre algunos dolores de cabeza a cualquiera que busque la solución.


Esto sucederá si no ha cargado la tabla de zona horaria en mysql.

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


Estos son los pasos para hacerlo funcionar si está en Windows y está usando MySQL 5.7.

  1. Haga clic derecho en Mi PC / Computadora / Esta PC o cualquiera que sea el nombre en su SO y elija Propiedades.
  2. Elija "Configuración avanzada del sistema" en el panel izquierdo.
  3. Elija "Variables ambientales", ingrese la ruta completa de su directorio bin MySQL (generalmente estará en, C: / Archivos de programa / MySQL / MySQL Server 5.7 / bin).
  4. Abra el indicador de cmd, ingrese en mysql usando mysql -u root -p password .
  5. Ingrese use mysql para seleccionar la base de datos MySQL.
  6. Descargue el archivo "timezone_YYYYc_posix_sql.zip" (en lugar de YYYY, sustituya el año máximo disponible en esa página, como 2017 o 2018) de https://dev.mysql.com/downloads/timezones.html .
  7. Extraelo y abre el archivo en el editor de texto.
  8. Copia los contenidos y ejecuta en el prompt cmd.

Al finalizar con éxito, debe poder usar CONVERT_TZ y otras funciones de zona horaria.


Si está utilizando MySql en Windows, debe cargar los datos de la zona horaria en el esquema de mysql. Aquí hay un buen CÓMO: http://www.geeksengine.com/article/populate-time-zone-data-for-mysql.html

Si no lo hace, la función CONVERT_TZ no reconocerá su zona horaria de entrada (es decir, sus ejemplos: ''UTC'', ''Asia / Yakarta''), y simplemente devolverá NULL.


MAMP PRO

  1. Terminal abierto
  2. cd /usr/share/zoneinfo/
  3. sudo mv +VERSION ~/Desktop
  4. cd /applications/MAMP/Library/bin
  5. sudo ./mysql_tzinfo_to_sql /usr/share/zoneinfo | ./mysql -p -u root mysql
  6. sudo mv ~/Desktop/+VERSION /usr/share/zoneinfo/

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

si obtiene los data too long for column ''abbreviation'' at row 1 error data too long for column ''abbreviation'' at row 1 , consulte: https://bugs.mysql.com/bug.php?id=68861

la solución sería ejecutar lo siguiente

esto agregará una línea para deshabilitar el modo mysql y permitir a mysql insertar datos truncados, esto fue debido a un error mysql donde mysql agregaría un carácter nulo al final (de acuerdo con el enlace de arriba)

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql (if the above gives error "data too long for column ''abbreviation'' at row 1") mysql_tzinfo_to_sql /usr/share/zoneinfo > /tmp/zut.sql echo "SET SESSION SQL_MODE = '''';" > /tmp/mysql_tzinfo_to.sql cat /tmp/zut.sql >> /tmp/mysql_tzinfo_to.sql mysql --defaults-file=/etc/mysql/my.cnf --user=verifiedscratch -p mysql < /tmp/mysql_tzinfo_to.sql