我只是使用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的日期仍然返回错误的值。
有人可以解释一下发生了什么吗?
答案 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。