在一台服务器上,当我运行:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2009-05-30 16:54:29 |
+---------------------+
1 row in set (0.00 sec)

在另一台服务器上:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2009-05-30 20:01:43 |
+---------------------+
1 row in set (0.00 sec)

当前回答

MySQL和PHP的时区设置:

记住:

更改时区系统。Ubuntu的例子: $ sudo dpkg-reconfigure tzdata 重启服务器或者重启Apache 2和MySQL: /etc/init.d / mysql重启

其他回答

如果使用指定时区会导致错误:

mysql> SET GLOBAL time_zone = "Asia/Bangkok";    
ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Bangkok'

你可以试试:

mysql_tzinfo_to_sql tz_file tz_name | mysql -u root -p mysql

然后:

SET GLOBAL time_zone = "Asia/Bangkok";
SET time_zone = "+07:00";
SET @@session.time_zone = "+07:00";

检查一下现在几点了:

SELECT NOW();

裁判: https://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html#time-zone-installation

简单地在你的MySQL服务器上运行:

SET GLOBAL time_zone = '+8:00';

你所在的时区是+8:00。

在Windows (IIS)上,为了能够SET GLOBAL time_zone = 'Europe/Helsinki'(或其他什么),MySQL time_zone描述表需要首先填充。

我是从这个链接https://dev.mysql.com/downloads/timezones.html下载的

运行下载的SQL查询后,我能够设置全局time_zone和解决问题,我有SELECT NOW();返回的是格林尼治标准时间而不是英国夏令时。

在MySQL Workbench 8.0的服务器选项卡下,如果你选择状态和系统变量,你可以在这里设置它。

对于仍然有这个问题的人:

value="jdbc:mysql://localhost:3306/dbname?serverTimezone=UTC"

为我工作。只需在末尾附加?serverTimezone=UTC。