【发布时间】:2011-01-18 10:38:25
【问题描述】:
要么我很愚蠢,要么这里出了点问题。
我有两个 SQL Server,一个在我的本地机器上(当地时间 +2 GMT),另一个在其他地方(NOW() 似乎返回 +8 GMT) 我通过 phpMyAdmin 访问它。我有一张有DATETIME 列的表。我在努力
存储当前 GMT/UTC 时间,然后再次显示,仍为 GMT/UTC 时间。
最初我存储了DATE_SUB(NOW(), INTERVAL 8 HOUR),它工作得很好。然而,后来我读到了UTC_TIMESTAMP() 并更喜欢它,因为它更短,MySQL manual 甚至说:
"当前时区设置不影响函数显示的值 例如 UTC_TIMESTAMP() 或 DATE、TIME 或 DATETIME 列中的值。"
那么完美对吧?除了没有。
假设当前格林威治标准时间是 2010-02-18 17:18:17(我什至与英国的某人再次核对过)。
在我的本地 (+2) 服务器上,我得到以下查询的以下结果:
SELECT NOW(); 2010-02-18 19:18:17
SELECT UTC_TIMESTAMP(); 2010-02-18 17:18:17
在我的在线服务器我得到:
SELECT NOW(); 2010-02-19 01:18:17
SELECT UTC_TIMESTAMP(); 2010-02-19 07:18:17 (WHY?!)
我错过了什么吗?!
【问题讨论】:
-
我遇到了同样的问题。
标签: mysql timezone timestamp utc