代码之家  ›  专栏  ›  技术社区  ›  Ian McIntyre Silber

“created”和“updated”列的时间戳与日期时间

  •  3
  • Ian McIntyre Silber  · 技术社区  · 15 年前

    我使用的是PHP/MySQL,我总是使用DATETIME来存储 created updated 价值观,但我认为可能有更好的方法。

    我应该改用时间戳吗?如果是,为什么?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Klaus Byskov Pedersen    15 年前

    The documentation 国家:

    时间戳值将从当前时区转换为存储的UTC,并从UTC转换回当前时区进行检索。(这只发生在时间戳数据类型上,而不是其他类型,如DATETIME)默认情况下,每个连接的当前时区是服务器的时间。时区可以根据每个连接进行设置,如第9.6节“MySQL服务器时区支持”中所述。只要时区设置保持不变,就可以得到存储的相同值。如果存储时间戳值,然后更改时区并检索该值,则检索到的值与存储的值不同。发生这种情况的原因是没有使用同一时区在两个方向上进行转换。当前时区可用作时区系统变量的值。

    所以你可能想用 TIMESTAMP 如果要将日期/时间存储在UTC中,而不是当前时区中。

        2
  •  0
  •   Aaron Hathaway    15 年前

    时间戳以UTC时间存储在数据库中。然后,根据您的时区设置,每次您提取它时,它都会自动相应地调整偏移量。如果您关心为应用程序设置时区,那么一定要使用时间戳。