9

目前,每当用户创建新帐户时,我都有一个具有 datatype 的 Creation_date 列timestamp。目前,这个时间戳比美国东部标准时间早 3 小时(如果它是波士顿的下午 5 点,它读取的是晚上 8 点)。有没有办法将时区更改为 EST?当前设置为哪个时区?

4

4 回答 4

11

这与 MySQL 的时区有关。

您可以使用以下内容为每个连接设置它(例如通过 PHPMyAdmin):

SET time_zone = timezone;

但是,如果 MySQL 重新启动,这将重置。所以最好在服务器级别设置。我想,你不能。

我鼓励您从MySQL Docs中阅读更多内容。

于 2012-08-07T20:25:06.560 回答
7

因此与这个问题

SET SESSION time_zone = '+8:00'
于 2012-08-07T20:26:01.317 回答
3

TIMESTAMP值在插入数据库时​​转换为 UTC,并在检索时转换回 MySQL 中设置的当前时区。其他答案显示了如何在 MySQL 中设置时区,这将确定数据库中的值。

另一种选择是使用一DATETIME列,以 UTC 存储所有日期,并将它们转换为应用程序中所需的时区(PHP 或您从中获取值的任何地方)。

于 2012-08-07T20:33:13.263 回答
2

SET GLOBAL time_zone = 时区;

于 2019-07-29T20:10:09.623 回答