商店已经UTC时间戳在时间戳字段没有进一步转换在MySQL

问题描述:

按照MySQL文档:商店已经UTC时间戳在时间戳字段没有进一步转换在MySQL

的MySQL从当前时区转换TIMESTAMP值以UTC进行存储,并返回从UTC到当前时间检索区。

我很满意检索的转换,但对于存储我已经有一个UTC时间戳。它是从客户端发送的,因为它是在客户端计算的值,我希望避免时区转换(因为我认为这会增加客户端 - 服务器通信的复杂性)。

如何插入此值以避免进一步转换?

如果您不希望MySQL进行任何转换,最简单的方法可能就是将时间戳存储在数字字段中。
这可能是取决于你打算用它做什么不好的做法,这个线程对利弊进行一些讨论: Using MySQL's TIMESTAMP vs storing timestamps directly

+0

感谢@glaux,我仍然希望在检索时进行转换。由于时间戳是在客户端计算的,我认为以UTC发送时间戳会比较简单,以避免处理客户端时区与服务器时区问题。但是我仍然对检索时的转换感兴趣,所以我将继续使用TIMESTAMP字段类型。 –

现在我使用此解决方法:

CONVERT_TZ('2009-06-15T13:45:30.0000000Z','+00:00','SYSTEM') 

我宁愿不转换将再次转换(虽然内部)的值,但它似乎是我更方便的解决方案。

另一种选择是使用:

SET time_zone = '+00:00'; 
--- your query here 
SET time_zone = 'SYSTEM'; 

但在我的情况下,我只需要只有两个字段转换而且似乎有点小题大做,尽管在这种情况下,应该不存在转换的。