因为把电脑时间隐藏了,想看时间,而且正好打开了MySQL的窗口,就使用select now();查看时间,这一看,看到了刚装的MySQL-8的一个问题:MySQL查询的时间和系统时间不一致。mysql
系统时间为: sql
相差8个小时,第一个想法是查看一下时区是否是不对,如图。 session
系统时区是CST,中央标准时间 Central Standard Time(CST)。3d
什么意思呢:code
CST是美国、澳大利亚、古巴或中国的标准时间。blog
一、美国中部时间:Central Standard Time (USA) UT-6:00io
二、澳大利亚中部时间:Central Standard Time (Australia) UT+9:30table
三、中国标准时间:China Standard Time UT+8:00ast
四、古巴标准时间:Cuba Standard Time UT-4:00登录
解决方式
而后退出后从新登陆就能够了,显示当前时间和我如今的时间一致了。
从新登陆以后,再次查看时间:
查看当前使用的时区
SELECT @@global.time_zone, @@session.time_zone;
设置 time_zone 的值的格式:
NOW() 和 CURTIME() 的返回值都受到时区设置的影响。
注意,只有 Timestamp 数据类型的值是受时区影响的。能够理解为, Timestamp 数据类型的实际表示使用的是 (字面值 + 时区信息)。 其它时间和日期类型,好比 Datetime/Date/Time 是不包含时区信息的,因此也不受到时区变化的影响。
mysql> create table t (ts timestamp, dt datetime); Query OK, 0 rows affected (0.02 sec) mysql> set @@time_zone = 'UTC'; Query OK, 0 rows affected (0.00 sec) mysql> insert into t values ('2017-09-30 11:11:11', '2017-09-30 11:11:11'); Query OK, 1 row affected (0.00 sec) mysql> set @@time_zone = '+8:00'; Query OK, 0 rows affected (0.00 sec) mysql> select * from t; +---------------------|---------------------+ | ts | dt | +---------------------|---------------------+ | 2017-09-30 19:11:11 | 2017-09-30 11:11:11 | +---------------------|---------------------+ 1 row in set (0.00 sec)
OK~