mySQL如何确定TIMESTAMP字段的时区?

发布于 2024-11-25 20:48:38 字数 481 浏览 0 评论 0原文

根据 mysqltutorial

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

葬花如无物 2024-12-02 20:48:38

要指定特定于连接的时间,您需要执行

SET time_zone = TZ;

其中 TZ 可以是数字偏移量,如 +11:00 或时区名称 Asia/Vladivostok (对于后者,您需要导入时区描述。请您的 DBA 这样做)

To specify connection-specific time you need to perform

SET time_zone = TZ;

Where TZ can be either numerical offset like +11:00 or name of timezone Asia/Vladivostok (for the latter you need to import timezones description. Ask your DBA to do so)

杀手六號 2024-12-02 20:48:38

这个例子是错误的,我刚刚测试了一下。无论时区如何,它都会返回先前插入的时间戳。 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".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文