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

上一篇: TZ doesn't work for 2 same conversions

下一篇: tz command returns NULL