【问题标题】:How to check server timezone如何检查服务器时区
【发布时间】:2015-06-10 02:00:52
【问题描述】:

我想知道 MySQL 服务器中当前设置的时区是什么。我没有我正在使用的计算机的管理员权限,所以我通过检查注册表尝试了该方法。

我正在做一个带有timestamp 列的表格,我注意到时间戳与我计算机上的时间戳不同。这有什么原因吗?如何检查 MySQL 服务器上的时区?如何更改它以匹配我的本地/计算机时间?

【问题讨论】:

标签: mysql timezone


【解决方案1】:

您可以使用

设置会话的时区(如果您知道偏移量)
    set session time_zone = '+00:00';

并恢复为系统默认值

    set session time_zone 'SYSTEM';

【讨论】:

    【解决方案2】:
    1. 在 SQL timestamp 列中,SQL 使用会话的当前时间偏移量在存储之前自动将时间转换为 UTC。除非您更改它 (3),否则它将是机器的时间偏移量。根据您的服务器设置 (sql.ini),它可能会或可能不会始终与预期的时区一致。这可能解释了时间差异。

    2. 要获取当前时区偏移量,请尝试执行

      SELECT @@session.time_zone;
      
    3. 要在特定会话的其余部分手动 override the SQL timezone,请执行以下命令,将 00:00 替换为您想要的偏移量:

      SET @@session.time_zone = "+00:00";
      

    【讨论】:

    • "使用机器的当前时间偏移量" -- 技术上是当前会话的时区偏移量,和系统一样 if它没有改变。它永远不会变回“原始”时区,除非检索时的会话时区恰好与存储值时的时区相同。
    【解决方案3】:

    查看system_time_zone 系统变量。

    【讨论】:

      【解决方案4】:

      这可能会有所帮助:

      http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

      您可以在启动时使用 --timezone=timezone_name 选项为 mysqld_safe 设置 MySQL 服务器的系统时区。也可以在启动mysqld之前通过设置TZ环境变量来设置。 --timezone 或 TZ 的允许值取决于系统。请查阅您的操作系统文档以查看可接受的值。

      【讨论】:

        【解决方案5】:

        您可以使用 CONVERT_TZ 将给定的时间戳转换为 UTC(或您想要的任何其他 TZ)

        SELECT CONVERT_TZ(NOW(),@@session.time_zone,'GMT');
        

        请注意,我使用NOW() 作为简单演示,您可以输入要转换的时间戳。

        同理,您可以将本地 TZ 中的时间戳转换为系统

        SELECT CONVERT_TZ($timestamp,'Your Time Zone' @@session.time_zone);
        

        【讨论】:

          【解决方案6】:

          检查您的共享服务器

          <?php
            echo date_default_timezone_get();
          ?>
          

          改变

          <?php
              date_default_timezone_set("Africa/Addis_Ababa");
              echo date_default_timezone_get();
          ?>
          

          【讨论】:

          • 需要注意的是,这只会更改当前 PHP 脚本的时区。执行完成后,此更改将被忘记。此外,这不会以任何方式改变 MySQL 使用的时区,这就是最初的问题。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-11-02
          • 2010-09-26
          • 2016-03-17
          • 2014-01-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多