【问题标题】:How to change mysql timezone to UTC from EDT time如何将 mysql 时区从 EDT 时间更改为 UTC
【发布时间】:2016-02-07 09:41:30
【问题描述】:

我已经在我的 linux 服务器上安装了 mysql。我的服务器时区是 UTC,但 EDT 中的 mysql 时区。现在我想将 mysql 时区更改为 UTC。

当我在 linux 命令中运行 date 时,它​​显示 Fri Nov 6 09:25:01 UTC 2015

当我在 mysql 中运行 select now() 时,它显示 2015-11-06 04:25:26。

那么如何在mysql中将EDT更改为UTC。

注意:我正在使用 mysql 工作台。

【问题讨论】:

标签: mysql timezone


【解决方案1】:

设置你的 MySQL 时区:-

SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
SET @@global.time_zone='+00:00';

检查时区:​​-

SELECT @@session.time_zone;

MySQL 配置文件的位置:-

/etc/mysql/my.cnf

【讨论】:

  • 如果我检查 SELECT @@session.time_zone;它说“系统”。
  • 设置你的时区使用这个:-
  • 如果我设置全球 time_zone = '+8:00'; SET GLOBAL time_zone = '欧洲/赫尔辛基'; SET @@global.time_zone='+00:00';那么这是显示我的 MYSQL 时区 utc 吗?
  • 设置全球 time_zone = '+8:00'; SET GLOBAL time_zone = '欧洲/赫尔辛基'; SET @@global.time_zone='+00:00';
  • 如果您设置您的国家时区,它将自动解决您的问题
【解决方案2】:

你可以这样试试:

SELECT CONVERT_TZ(NOW(), @@session.time_zone, '+00:00') 

SQL DEMOUTC CURRENT TIME

请参阅CONVERT_TZ function

CONVERT_TZ() 从给定的时区转换日期时间值 dt from_tz 到 to_tz 给定的时区并返回结果 价值。

【讨论】:

    【解决方案3】:

    如果您只关心当前时间,则无需进行任何转换或担心时区。只需使用适当的功能即可。

    • NOW() 返回当前本地时间。
    • UTC_TIMESTAMP() 返回当前 UTC 时间。

    请参阅 MySQL 文档中的 Date and Time Functions

    【讨论】:

    • 我在应用程序的很多地方都使用了 select now(),所以我应该将 mysql 时区更改为 UTC。
    • 当然,这是另一种方法。但我会非常小心地检查你正在做的所有地方。函数并不重要,但如果您一直在将本地时间数据写入表中,而现在您开始写入 UTC 数据,那么不匹配将是一个大问题。先想想如何转换现有数据。
    猜你喜欢
    • 2010-11-01
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 2022-11-23
    • 2012-03-20
    • 1970-01-01
    相关资源
    最近更新 更多