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

标签 mysql timezone timestamp utc

要么是我太蠢了,要么是哪里出了问题。

我有两个 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/

相关文章:

mysql - 设计客户数据表?

timezone - Google auth2 API 缺少时区信息?

java - 将日期存储在数据库中是 Java 的最佳实践吗?

mysql 昨天日期与特定时间戳

mysql - 找不到列 : execption in laravel

mysql - MySQL表数据输入格式

mysql - 如何并行运行sql查询

c# - 时区转换和夏令时

Java TimeZone 让人头皮发麻

scala - 使用 Scala 将字符串转换为 Spark 的时间戳