我正在运行 MYSQL 4.1 数据库,该数据库存储我们在欧洲运营的办事处的呼叫中心数据。
我的 MYSQL 数据库位于 Windows 2003 服务器上,该服务器的时区设置为欧洲中部时间,它会自动调整为夏令时。
我希望能够生成一份报告,向我们在欧洲的客户显示正确时区的日志日期和时间。
我的数据库将调用的日志日期/时间存储为 unix 时间戳。因此,日期存储为 UTC。我发现 MYSQL 函数可以轻松地将日志日期时间调整为您选择的时区。
它被称为CONVERT_TZ。(更多信息:http ://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_convert-tz )
例子:SELECT CONVERT_TZ('2004-01-01 12:00:00','UTC','CET');
我试图将此应用于登录于 01-06-2013 22:12 的呼叫
CONVERT_TZ(FROM_UNIXTIME(o.logdatex), 'UTC','CET') 'CET_L_DATETIME'
(logdatex 是通话记录时的 unxtimestamp)
令我困惑的是,声明返回 - 2013-06-02 00:12:56。
我想看看我刚选择时返回了什么FROM_UNIXTIME(o.logdatex)
它返回了正确的时间!2013-06-01 22:12:56(此电话是从我们的阿姆斯特丹办公室记录的)
我的问题是,FROM_UNIXTIME 函数是否会根据 MYSQL 服务器设置的时区自动调整从 UTC 开始的时间?我找不到任何说明它的文档。