MySQL中具有时区的date/时间究竟如何工作?

我的理解是:

  • 一切都是UTC内部
  • date显示在当前会话的@@ session.time_zone时区
  • 如果我做INSERT +02:00 TZ设置并插入2015-05-15 10:54它parsing并存储为2015-05-15 08:54 UTC。
  • 当我切换到UTC TZ时,现在应该显示2015-05-15 08:54
  • 发生什么反而是它仍然显示2015-05-15 10:54

我究竟做错了什么? 或者这是预期的? 我在MySQL中阅读了很多关于date时间的文章,但是我仍然不确定。

这只适用于TIMESTAMP字段。 DATETIME字段保持原样。

请参阅http://dev.mysql.com/doc/refman/5.7/en/datetime.html