MySQL - CET和CEST之间的区别

时间:2011-03-30 15:45:47

标签: mysql time timezone

我需要将一些表从MySQL数据库移到PostgreSQL。 所以我通过检查系统变量检查了MySQL服务器使用的时区:

system time zone    CET

CET - 据我所知 - 与CEST形成对比 - 永远不会超过UTC+1CEST是夏天UTC+2。根据{{​​3}}

SELECT CURRENT_TIMESTAMP()实际上会返回CEST时间(UTC+2):

为什么?

1 个答案:

答案 0 :(得分:2)

  

所以我查了一下,哪个时区是   MySQL服务器通过检查系统使用   变量

你是怎么做到的?

请尝试此查询并告诉我结果:

SELECT @@global.time_zone, @@session.time_zone;

可以有三种类型的结果。

  • SYSTEM

这意味着MySQL使用操作系统的时区设置

  • 像'+01:00'之类的东西 值

这是UTC(协调世界时)

的差异
  • 类似'Europe / Berlin'

与上面基本相同,但是你已经在MySQL中填充了你的时区表。

您可以看到,datetime值在内部由MySQL存储为UTC值。 因此,当您在SYSTEM变量设置为'Europe / Berlin'/'+ 01:00'的情况下在表中插入'2011-03-30 12:34:56'时,MySQL会计算'2011-03-的整数表示形式30 11:34:56',保存数据库中的值。当您查询日期时间值时,MySQL再次添加该小时(假设您的时区设置未更改),并显示值“2011-03-30 12:34:56”