因爲把電腦時間隱藏了,想看時間,而且正好打開了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~