mySQL如何确定TIMESTAMP字段的时区?
MySQL TIMESTAMP 列的值取决于连接时间 区。当为 MySQL TIMESTAMP 列插入值时,它们是 从连接时间转换为通用协调时间 (UTC) 区。当您选择该值时,服务器会将其从 UTC 转换回来 连接的时区,以便您具有与您相同的值 已插入。
它从哪里得到这个信息。从用户将其操作系统设置为其他方法或从其他方法设置的时间开始?
Javascript 也有一种处理时区的方法,但涉及更多: 在线方面
According to mysqltutorial
The values of the MySQL TIMESTAMP columns depend on connection’s time
zone. When insert values for MySQL TIMESTAMP columns, they are
converted to Universal Coordinated Time (UTC) from connection’s time
zone. When you select the value, the server converts it back from UTC
to the connection’s time zone so you have the same value that you
inserted.
Where does it get this info. from, the time the user sets his OS to or from some other method?
Javascript also has a way to do timezones but is more involved: onlineaspect
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要指定特定于连接的时间,您需要执行
其中
TZ
可以是数字偏移量,如+11:00
或时区名称Asia/Vladivostok
(对于后者,您需要导入时区描述。请您的 DBA 这样做)To specify connection-specific time you need to perform
Where
TZ
can be either numerical offset like+11:00
or name of timezoneAsia/Vladivostok
(for the latter you need to import timezones description. Ask your DBA to do so)这个例子是错误的,我刚刚测试了一下。无论时区如何,它都会返回先前插入的时间戳。 mysql总是会插入你指定的时间,而不修改它。如果你需要调整时区,你必须显式地告诉mysql这样做;否则所有时间都被假定为“本地服务器时间”。
the example there is wrong, i just tested it. it returns the previously inserted timestamp, regardless of the timezone. mysql will always insert the time you specify, without modifying it. if you need timezone adjustment, you have to tell mysql explicit to do so; otherwise all times are assumed to be "local server time".