SELECT UTC_TIMESTAMP()如何返回-10:00 UTC?

Ale*_*lex 7 mysql timezone timestamp utc

要么我是愚蠢的,要么是错的.

我有两个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
Run Code Online (Sandbox Code Playgroud)

我的在线服务器上,我得到:

SELECT NOW(); 2010-02-19 01:18:17

SELECT UTC_TIMESTAMP(); 2010-02-19 07:18:17 (WHY?!)
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?!

Qua*_*noi 12

可能是因为在线服务器上的时钟错了?

试试这个:

SELECT  @@system_time_zone, NOW(), UTC_TIMESTAMP()
Run Code Online (Sandbox Code Playgroud)

并查看它返回的区域,并与差异相匹配.