MySQL的NOW()遵循什么时区

时间:2009-09-18 16:51:49

标签: sql mysql

MySQL的NOW()是否遵循系统的时区或某些标准,如GMT或UTC?

3 个答案:

答案 0 :(得分:23)

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

  

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

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

答案 1 :(得分:12)

它在当前时区。来自5.1 docs

  

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

现在“当前时区”可能意味着不同的事情:

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

更多详情请见5.1 time zone documentation

(对于这些位,5.4文档看起来是一样的。显然请查阅您正在运行的版本的文档以获取最佳信息。)

答案 2 :(得分:0)

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