【问题标题】:What timezone does MySQL's NOW() followMySQL 的 NOW() 遵循什么时区
【发布时间】:2009-09-18 16:51:48
【问题描述】:

MySQL 的 NOW() 是否遵循系统的时区或 GMT 或 UTC 等标准?

【问题讨论】:

    标签: sql mysql


    【解决方案1】:

    根据the docs,规则很复杂,但主要归结为“当前会话的时区”(默认为系统时区):

    当前会话时区设置 影响时间的显示和存储 区域敏感的值。这 包括显示的值 NOW() 或 CURTIME() 等函数, 以及存储和检索的值 来自 TIMESTAMP 列。价值观 TIMESTAMP 列从 UTC 的当前时区 存储,并从 UTC 到当前 检索时区。

    如果您特别需要 UTC,当然可以使用UTC_TIMESTAMP()

    【讨论】:

      【解决方案2】:

      它在当前时区。来自5.1 docs

      返回当前日期和时间 'YYYY-MM-DD HH:MM:SS' 中的值或 YYYYMMDDHHMMSS.uuuuuu 格式, 取决于功能是否 在字符串或数字上下文中使用。 该值以电流表示 时区。

      现在“当前时区”可能有不同的含义:

      • 系统时区
      • 一般为 MySQL 服务器指定的时区
      • 特定于连接的时区

      更多详情请见5.1 time zone documentation

      (这些位的 5.4 文档看起来相同。显然,请参阅文档以了解您正在运行的版本以获得最佳信息。)

      【讨论】:

        【解决方案3】:

        据我所知,系统时钟已返回。检查系统的时区。我在本地连接 MySQL(比如从 PHP)时区对 MySQL 来说并不重要,我更喜欢在 PHP 中处理它们。

        【讨论】:

        • 你能再解释一下PHP的东西吗?如果我使用 PHP 获取时间戳列,它在哪个时区?默认 PHP 时区?
        猜你喜欢
        • 2012-05-30
        • 2017-12-09
        • 1970-01-01
        • 2011-09-21
        • 2012-01-01
        • 2020-02-16
        • 1970-01-01
        • 2016-04-26
        • 2013-01-28
        相关资源
        最近更新 更多