要么是我太蠢了,要么是哪里出了问题。
我有两个 SQL Server,一个在我的本地机器上(本地时间 +2 GMT),另一个在其他地方(NOW()
似乎返回+8 GMT),我通过 phpMyAdmin 访问它。我有一个包含 DATETIME
列的表。我在努力
to store the current GMT/UTC time and then display it again, still as GMT/UTC time.
最初我存储了 DATE_SUB(NOW(), INTERVAL 8 HOUR)
,效果很好。然而,后来我阅读了有关 UTC_TIMESTAMP()
的内容并更喜欢它,因为它更短而且 MySQL manual
甚至说:
"The current time zone setting does not affect values displayed by functions such as UTC_TIMESTAMP() or values in DATE, TIME, or DATETIME columns."
太完美了吧?除了没有。
让我们假设当前的 GMT 是 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?!)
我是不是漏掉了什么?!
最佳答案
可能是因为在线服务器上的时钟有误?
尝试运行这个:
SELECT @@system_time_zone, NOW(), UTC_TIMESTAMP()
并查看它返回哪个区域并匹配差异。
关于mysql - SELECT UTC_TIMESTAMP() 如何返回 -10 :00 UTC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2290725/