Sé que esto suena estúpido, pero cuando uso
SELECT CONVERT_TZ('2004-01-01 12:00:00','UTC','Asia/Jakarta') AS time
genera NULL. Estoy usando MySQL Workbench en Ubuntu 12.04 de 64 bits, y funciona en mi otra computadora portátil / sistema operativo (también usando MySQL Workbench).
mysql
ubuntu-12.04
convert-tz
Mohur
fuente
fuente
Encontré este hilo después de pasar un tiempo tratando de averiguar por qué después de ejecutar el comando en la respuesta aceptada (que es el mismo en el sitio de desarrollo de MySQL), el comando no pudo convertir entre zonas horarias como
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 comandopara completar toda la información esperada de la zona horaria.
Esto puede o no ser un error en mi versión instalada de MySQL:
También estoy operando en
STRICT_MODE
.En cualquier caso, espero que esto le ahorre algunos dolores de cabeza a cualquiera que busque la solución.
fuente
Aparte del entorno de Windows, puede configurar la zona horaria
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
En entorno Windows ,
1. download Time zone description tables from
http://dev.mysql.com/downloads/timezones.html2. Stop MySQL server
3. Put then inside Mysql installation package
(es decir, C: \ Archivos de programa \ MySQL \ data \ mysql) `4. Start MySQL server
.. Tu trabajo está terminado ..
Si aún está obteniendo
NULL
paraCONVERT_TZ
descargar estas tablas de base de datos e insertarlas en la base de datos mysql http://www.4shared.com/folder/Toba2qu-/Mysql_timezone.htmlAhora tu problema estará resuelto .. :)
fuente
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 hace esto, la función CONVERT_TZ no reconocerá su zona horaria de entrada (es decir, sus ejemplos: 'UTC', 'Asia / Yakarta') y simplemente devolverá NULL.
fuente
MAMP PRO
Terminal
cd /usr/share/zoneinfo/
sudo mv +VERSION ~/Desktop
cd /applications/MAMP/Library/bin
sudo ./mysql_tzinfo_to_sql /usr/share/zoneinfo | ./mysql -p -u root mysql
sudo mv ~/Desktop/+VERSION /usr/share/zoneinfo/
fuente
1) En Windows, ahora no hay ninguna carpeta de datos
C:\Program Files\MySQL\
como en otras respuestas.2) En ese caso, busque
C:\ProgramData\MySQL\MySQL Server 5.x\Data\mysql
. Generalmente 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 Inicio de Windows.
5) Luego descomprima el timezone_2017c_posix.zip y luego copie los archivos en él (copie los archivos directamente, no copie toda la carpeta), y péguelo
C:\ProgramData\MySQL\MySQLServer5.x\Data\mysql\
6) Para MySQL 5.7, timezone_2017c_posix.zip solo dará un archivo .sql después de descomprimirlo y es posible que no resuelva el problema. Así que continúe y descargue el archivo zip para 5.6 incluso si está ejecutando MySQL 5.7 y copie esos archivos a
C:\ProgramData\MySQL\MySQL Server 5.x\Data\mysql\
7) Reinicie el servidor MySQL. Para comprobar si CONVERT_TZ () está funcionando, ejecute esta consulta SQL.
SELECT CONVERT_TZ('2004-01-01 12:00:00','UTC','Asia/Jakarta');
y compruebe la salida no nula.fuente
si recibe el error
data too long for column 'abbreviation' at row 1
, consulte: https://bugs.mysql.com/bug.php?id=68861la solución sería ejecutar lo siguiente
esto agregará una línea para deshabilitar el modo mysql y permitirá que mysql inserte datos truncados, esto se debió a un error de mysql donde mysql agregaría un carácter nulo al final (de acuerdo con el enlace anterior)
fuente
Estos son los pasos para que funcione si está en Windows y usa MySQL 5.7.
mysql -u root -p password
.use mysql
para seleccionar la base de datos MySQL.Una vez completado con éxito, debería poder utilizar
CONVERT_TZ
y otras funciones de zona horaria.fuente
En Mac OS Catalina cuando se usa XAMPP,
Vaya a la carpeta / Aplicaciones / XAMPP / xamppfiles / bin en la Terminal y luego ejecute lo siguiente.
./mysql_tzinfo_to_sql / usr / share / zoneinfo | sed -e "s / Se debe establecer la zona horaria local; consulte la página del manual de zic / local /" | ./mysql -u root mysql
Esto funcionó para mí.
fuente