MySQL - CET 和 CEST 之间的区别

标签 mysql time timezone

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

system time zone    CET

CET - 据我所知 - 与 CEST 相比 - 永远不会超过 UTC+1CEST 在夏季 UTC+2。根据http://en.wikipedia.org/wiki/Central_European_Time

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

为什么?

最佳答案

So i've checked, which time zone is MySQL server using by checking system variable

你是怎么做到的?

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

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

可以有三种类型的结果。

  • 系统

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

  • 类似“+01:00”之类的东西 值(value)

这是与 UTC(协调世界时)的时差

  • 类似“欧洲/柏林”的内容

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

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

关于MySQL - CET 和 CEST 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488694/

相关文章:

php - DataTable 上的总和页脚

java - 应用程序中有两种不同的架构

c - 为什么 `gmtime` 需要一个指针?

go - 获取完整的 UTC 偏移量格式

mysql - 如何使用mysql从列中获取最频繁的值

mysql - 如何在同一查询中的一个表中获取不同类型表中的行数

java - 在 Java 中创建 Time 类

java - 将日期和时区从 GAE 服务器发送到 GWT 客户端

具有较早日期时间的 PHP Datetime 对象具有较高的时间戳值?

javascript - 如何在 Javascript 中获取时区日期和时间的 UTC 值?