【发布时间】:2013-05-01 16:38:13
【问题描述】:
我正在使用共享主机,因此我无权访问 mysql 配置文件。
该系统上的默认时区是“America/New_York”,但我的数据库需要使用 UTC -5:00。
每次执行查询时,时区都会设置为 UTC -5:00,如下所示:
SET time_zone='-5:00';
如果我想要当前时间,SELECT NOW() 返回正确的时间和日期,但是在更新表时 mysql 使用 SYSTEM 时间而不是设置的时区
UPDATE administradores SET ultimo_acceso=NOW() WHERE id=1
为什么这些值不同?由于我覆盖了时区,两个查询中的时间不应该相同吗?
我也尝试过使用 INSERT 语句,效果很好。
【问题讨论】:
-
我不确定,但是当你设置一些你在本地做的事情时,我认为你需要将它设置为全局 dev.mysql.com/doc/refman/5.5/en//time-zone-support.html 看看那个 URL
-
America/New_York在一年中的部分时间处于 UTC-05:00,在夏令时处于 UTC-04:00。您确定要禁用 DST 吗?另外 -ultimo_accesso的确切数据类型是什么? -
@MattJohnson 是的,我实际上想使用墨西哥城时区,我认为它是美国中部时间。 ultimo_acceso 是一个时间戳
-
那么您可能想使用
America/Mexico_City作为时区ID。它在 -6 和 -5 之间切换。 See this list. -
This page 也可能提供信息。