根据mysqltutorial
MySQL TIMESTAMP列的值取决于连接的时间区。当为MySQL的TIMESTAMP列插入值时,它们是从连接时间转换为通用协调时间(UTC)区。当您选择该值时,服务器将其从UTC转换回来到连接的时区,这样您的值就与您使用的值相同插入。
它从哪里得到这个信息。用户将操作系统设置为或从其他方法设置的时间?
Javascript也有一种方法来做时区,但更复杂:onlineaspect
要指定特定于连接的时间,您需要执行
SET time_zone = TZ;
其中TZ
可以是数值偏移量,如+11:00
,也可以是时区名称Asia/Vladivostok
(后者需要导入时区描述)。请您的DBA这样做)
这个例子有错,我只是测试了一下。它返回之前插入的时间戳,与时区无关。Mysql将始终插入您指定的时间,而不修改它。如果你需要调整时区,你必须明确告诉mysql这样做;否则,所有时间都假定为"本地服务器时间"。