gpt4 book ai didi

mysql - 关于 FROM_UNIXTIME 的困惑

转载 作者:行者123 更新时间:2023-11-30 23:15:51 32 4
gpt4 key购买 nike

我正在运行 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 时间?我找不到任何说明它的文档。

最佳答案

我的假设是因为当您执行 FROM_UNIXTIME(o.logdatex) 时,您从 UTC 转换为服务器的时区。现在你约会不在 UTC 时区。因此,在 CONVERT_TZ(FROM_UNIXTIME(o.logdatex), 'UTC','CET') 中,您不是从“UTC”而是从您服务器的时区进行转换,因此您会得到一个奇怪的结果。尝试选择 FROM_UNIXTIME(o.logdatex) 作为查询中的单独字段并比较结果。

关于mysql - 关于 FROM_UNIXTIME 的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17900990/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com