【问题标题】:mySQL store NOW() in the correct server timezone? [duplicate]mySQL 将 NOW() 存储在正确的服务器时区吗? [复制]
【发布时间】:2016-05-20 03:52:43
【问题描述】:

我设置了 PHP 和 mySQL conf 文件 要有默认时区 = 'Europe/Rome' (或者至少我认为我做到了)

如果我查询 mysql

mysql> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM             | SYSTEM              |
+--------------------+---------------------+

mysql> SELECT CURRENT_TIMESTAMP(); // it's 6:38pm in NYC now
+---------------------+
| CURRENT_TIMESTAMP() |
+---------------------+
| 2016-02-09 18:38:45 |
+---------------------+

但我住在纽约,服务器位于美国(MediaTemple),当我测试我的查询时,它会保存以 24 小时格式转换的 New_York 时间:

例如。我刚刚使用...time = NOW()... 在我的表中输入了一行 在纽约是下午 6 点 31 分 但mysql行中的时间显示2016-02-09 18:31:47 我期待在罗马/柏林看到2016-02-09 00:31:47 的地方

我做错了什么??那我需要在哪里设置时区呢?

【问题讨论】:

标签: php mysql


【解决方案1】:

SYSTEM 表示 MySQL 正在使用操作系统的时区。在该机器上的终端中发出以下命令:

date +%Z

这也是您的查询中使用的时区。如果这不是您所期望的,请在操作系统级别更改时区。这取决于您运行的操作系统(您没有提到)。

【讨论】:

    猜你喜欢
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2010-12-19
    • 2014-04-16
    • 2011-12-02
    • 2012-05-30
    • 1970-01-01
    相关资源
    最近更新 更多