1、进入mysql终端
mysql -uroot -p
输入密码
use mysql;
2、查看mysql 数据库中的时区信息是否有荷兰时区的信息
show tables like "%time%";
SELECT COUNT(1) FROM mysql.time_zone_name;
SELECT * FROM time_zone_name WHERE name LIKE 'Europe/Amsterdam%’;
SELECT * FROM time_zone_name WHERE name LIKE 'Amsterdam%’;
3、若没有,则需要导入荷兰时区的信息 PS:如果有荷兰时区这步可省略。
在mysql/bin即数据库安装目录下,使用
mysql_tzinfo_to_sql /usr/share/zoneinfo/Europe | mysql -u root -p mysql;
输入密码
然后在数据库mysql查询是否已导入成功时区信息
SELECT * FROM time_zone_name WHERE name LIKE 'Europe/Amsterdam%’;
SELECT * FROM time_zone_name WHERE name LIKE 'Amsterdam%’;
4、修改数据库的my.cnf文件,在 [mysqld]或者galera 之下加,Amsterdam这个可以换成其他的城市,但是前台是数据库的时区信息必须有这个城市
default-time-zone = 'Amsterdam'
5、重启数据库
a、系统偏好设置哪里关闭然后启动数据库
b、使用命令,这个命令我只是在服务器上使用,本地是用a步骤的
sudo systemctl restart mariadb
6、查看数据库时区是否修改成功
show variables like '%time_zone%';
select now();
下面的方法是测试CONVERT_TZ函数的
荷兰的夏令时在(2018-3-25 1:00:00 —— 2018-10-28 2:00:00)
SELECT CONVERT_TZ('2018-03-25 00:00:00','+1:00','Amsterdam') AS TIME;
时间不变
SELECT CONVERT_TZ('2018-03-25 01:00:00','+1:00','Amsterdam') AS TIME;
时间快了一小时
SELECT CONVERT_TZ('2018-03-25 04:00:00','+1:00','Amsterdam') AS TIME;
时间快了一小时
SELECT CONVERT_TZ('2018-10-28 01:00:00','+1:00','Amsterdam') AS TIME;
时间快了一小时
SELECT CONVERT_TZ('2018-10-28 02:00:00','+1:00','Amsterdam') AS TIME;
时间不变
SELECT CONVERT_TZ('2018-10-28 03:00:00','+1:00','Amsterdam') AS TIME;
时间不变