最近在做PayPal支付相关的东西,然后PayPal所使用的都是UTC时间,也就是格林尼治时间。而我们(中国)处于东八区,与零时区相差8小时,准确的说是快8小时。为了保证时间上的统一,需要把数据库也设置为UTC时间,这样会省去很多计算,也减小了出差错的概率。
警告:但是要注意一点,了解MySQL的同学都知道timestamp才会跟着时区变化而变化,而datetime是不会变的(关于二者比较看这里:http://blog.csdn.net/qq_32457355/article/details/54604054)。所以如果已经有数据的,而且字段是datetime,就不要妄想之前的数据一起跟着变成修改时区后的时间了
time_zone是一个MySQL的属性,可以直接用show variables like 变量名
查看, 就像这样:
mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CST |
| time_zone | +08:00 |
+------------------+--------+
2 rows in set (0.01 sec)
SET time_zone = "+00:00";
SET @@session.time_zone = "+00:00";
修改后会立即生效,不信你再查一下看看。但是退出当前会话,下次不生效。
SET global time_zone = "+00:00";
这要注意了,本次不生效,但是从这之后再连接的才会生效。也是很神奇。
不知道配置文件在哪的话,参考这个http://blog.csdn.net/qq_32457355/article/details/78427077
##在[mysqld]区域中加上
default-time_zone = '+00:00'
重启MySQL
## ubuntu
sudo service mysql restart
## Mac
mysql.server restart
## Other
Google
更多:vien.我爱你
viencoding.com版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/4