TZ不适用于2次相同的转换
我得到了一个包含事件时间日志的表格,我需要将2列转换为一个公共时区。
所以如果我这样做(转换到不同的时区)
SELECT id
,CONVERT_TZ(starting_time, 'UTC', 'Europe/London') AS starting_time
,CONVERT_TZ(finishing_time, 'UTC', 'Europe/Madrid') AS finishing_time
FROM table
我得到了所有的时间,但如果我跑了
SELECT id
,CONVERT_TZ(starting_time, 'UTC', 'Europe/London') AS starting_time
,CONVERT_TZ(finishing_time, 'UTC', 'Europe/London') AS finishing_time
FROM table
所有的时间数据都是NULL
。
我使用MySQL 5.1.63在RHEL 5上从/ usr / share / zoneinfo的https://dev.mysql.com/doc/refman/5.0/en/time-zone-support.html中载入了我的TZ数据。
如果您尚未将时区表加载到MySQL
则会发生这种情况。 试试这个(在RHEL的控制台中):
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
编辑:你只需要加载表一次。 它将信息加载到MySQL
,随后使用该表。
编辑2 :只有在创建并填充了MySQL
数据库中的时区信息表后,才能使用命名时区。
MySQL
安装过程在MySQL数据库中创建时区表, 但不加载它们 。
有关详细信息,请参阅版本5.1.x文档。
链接地址: http://www.djcxy.com/p/25051.html