FROM_UNIXTIME到MySQL返回错误的日期

时间:2016-11-01 09:25:32

标签: mysql timestamp unix-timestamp

我只是使用FROM_UNIXTIME插入MySQL,但它提供了错误的日期。 我的疑问是

INSERT INTO `phpc_occurrences`
SET `eid` = '15', 
    `time_type` = '0', 
    `start_ts` = FROM_UNIXTIME('1479189600'), 
     `end_ts` = FROM_UNIXTIME('1479232800');

1479189600应返回Tue, 15 Nov 2016 06:00:00 GMT,但我的本地MySQL数据库返回Tue, 15 Nov 2016 13:00:00 GMT

我的电脑时区是UTC +7,但我已将其更改为UTC 0,而MySQL的日期仍然返回错误的值。

有人可以解释一下发生了什么吗?

1 个答案:

答案 0 :(得分:0)

请务必将time_zone变量更新为GMT。例如,我当前的time_zone是GMT + 03,所以我得到:

{{1}}

但将time_zone更改为UTC(GMT)值会产生其他结果:

{{1}}

也许mysql没有用你的系统时区更新它的内部time_zone变量?

另外,您应该注意字段'start_ts'和'end_ts'是否具有TIMESTAMP类型。如果是这样,你可以不用担心插入表时的时间戳,只有当你选择一些数据时才重要,因为你的mysql客户端实际上是从TIMESTAMP值(实际上只是一个int32)转换为你当前的本地时间,所以您需要使用所需的时区提示您的db-client。