【发布时间】:2016-10-31 04:50:11
【问题描述】:
互联网上有很多关于转换 MySQL 时间戳、它如何工作等的资料。但我需要的是相反的:知道 MySQL 在 TIMESTAMP 字段中将每个日期时间数据存储为 UTC,我想要的只是直接检索存储的UTC 值,没有 MySQL 与系统/服务器/连接时区混淆日期时间。
你看,我们已经构建了一个简单的 node.js 馈送器,它从几个第三方 MySQL 数据库中读取数据(所以我不能更改它们的时区设置)并将收集到的数据保存到 Elasticsearch,作为“非规范化过程”。由于原始数据来自不同的时区,我需要将它们存储在 UTC 中,这样我就可以轻松地协调进一步的 GET 和聚合。
我知道我可以即时设置连接时区,并且我知道我可以更改在我的节点应用程序中获取的每个时间戳字段,但是由于 MySQL 引擎已经以 UTC 存储时间戳,如果我可以简单地添加任何其他步骤,我为什么要添加任何其他步骤直接获取,无需转换函数或昂贵的数据处理?
简而言之,我想知道:有没有办法绕过 MySQL 自动 GMT 转换?
【问题讨论】:
-
不能将服务器时区设置为 SET time_zone = UTC;这将解决所有问题
标签: mysql datetime timezone timestamp utc