2015-11-06 449 views
2

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

当我在Linux命令运行日期

,它示出了周五11月6日9时25分01秒UTC 2015

当我运行现在选择()在MySQL,它示出了2015年11月6日4时25分26秒。

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

注意:我使用mysql工作台。

+0

http://stackoverflow.com/questions/19023978/should-mysql-have-its-timezone-set-to-utc检查此解决方案 –

回答

0

你可以尝试这样的:

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

SQL DEMOUTC CURRENT TIME

请参考CONVERT_TZ function

CONVERT_TZ()将来自通过 FROM_TZ给予由转到to_tz给出的时区的时区中的日期时间值dt和返回得到 值。

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 
+0

如果我检查SELECT @@ session.time_zone;它说“系统”。 – MMMMS

+0

设置你的时区使用这个: - –

+0

如果我设置全球time_zone ='+8:00'; SET GLOBAL time_zone ='Europe/Helsinki'; SET @@ global.time_zone ='+ 00:00';那么这显示我的MYSQL TIMEZONE utc? – MMMMS

0

如果所有你关心是目前的时间,你不必做任何转换或担心t ime区域。只需使用适当的功能即可。

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

请参阅Date and Time Functions在MySQL文档中。

+0

我在我的应用程序中的许多地方使用select now(),所以我应该将mysql时区更改为UTC。 – MMMMS

+0

这是另一种方式来做到这一点,当然。但我会非常小心地检查你正在做的所有地方。它不是那么重要的功能,但如果你一直在写本地时间数据到你的表,现在你开始写UTC数据,那么不匹配将是一个大问题。想想如何先转换现有的数据。 –