在一台服务器上,当我运行:
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)
如果符合您的场景,您可以通过更改操作系统时区轻松做到这一点。
在Ubuntu系统中,使用此命令可以列出时区
sudo timedatectl list-timezones
如果需要修改操作系统的时区,需要同时执行该命令
timedatectl set-timezone America/New_York
检查操作系统时区,执行
date
然后重新启动MySQL
sudo service mysql restart
要在MySQL中检查时区,请登录并运行
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
首先要弄清楚time_zone是什么,可以查询
SHOW VARIABLES LIKE '%time_zone%';
您的输出应该如下所示
**Variable_name** **Value**
system_time_zone CDT
time_zone SYSTEM
然后,如果你想确认你所在的时区,比如CDT,而不是EST,你可以通过这样说来检查它认为你的机器所在的时间
SELECT NOW();
如果这不是你想要的时间,你需要改变它……你所需要做的就是SET time_zone = timezone_name。确保它是一个大洲/城市格式。
如果您在共享服务器上,因为您有托管服务,请参考这些关于更改php.ini文件或.htaccess文件的答案。