MySQL CONVERT_TZ不适用于2次相同的转换

时间:2014-02-07 09:47:15

标签: mysql timezone convert-tz

我有一张包含事件时间日志的表格,我需要将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加载了我的TZ数据https://dev.mysql.com/doc/refman/5.0/en/time-zone-support.html

1 个答案:

答案 0 :(得分:1)

如果您尚未将时区表加载到MySQL,则会发生这种情况。试试这个(在RHEL的控制台中):

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

编辑:您只需要加载一次表。它将信息加载到MySQL的表中,从那时起使用它。

EDIT2 :仅当MySQL数据库中的时区信息表已创建并填充时,才能使用命名时区。

MySQL安装过程在MySQL数据库中创建时区表,但不加载

有关详细信息,请参阅5.1.x版documentation