mysql時區(qū)

時區(qū)支持
使用的時區(qū)由 time_zone 全局變量和 session 變量決定。time_zone 的默認值是 System,System 對應(yīng)的實際時區(qū)在 TiDB 集群 bootstrap 初始化時設(shè)置。具體邏輯如下:

優(yōu)先使用 TZ 環(huán)境變量
如果失敗,則從 /etc/localtime 的實際軟鏈地址提取。
如果上面兩種都失敗則使用 UTC 作為系統(tǒng)時區(qū)。
在運行過程中可以修改全局時區(qū):

mysql> set global time_zone='+8:00'; # 因為UTC時區(qū) 修改時間 建議使用
mysql> SET GLOBAL time_zone = timezone; # 根據(jù)具體情況使用,不建議禁止使用
TiDB 還可以通過設(shè)置 session 變量 time_zone 為每個連接維護各自的時區(qū)。默認條件下,這個值取的是全局變量 time_zone 的值。修改 session 使用的時區(qū):

mysql> SET time_zone = timezone;
查看當前使用的時區(qū)的值:

mysql> SELECT @@global.time_zone, @@session.time_zone;
設(shè)置 time_zone 的值的格式:

'SYSTEM' 表明使用系統(tǒng)時間
相對于 UTC 時間的偏移,比如 '+10:00' 或者 '-6:00'
某個時區(qū)的名字,比如 'Europe/Helsinki', 'US/Eastern' 或 'MET'
NOW() 和 CURTIME() 的返回值都受到時區(qū)設(shè)置的影響。

注意,只有 Timestamp 數(shù)據(jù)類型的值是受時區(qū)影響的??梢岳斫鉃椋?Timestamp 數(shù)據(jù)類型的實際表示使用的是 (字面值 + 時區(qū)信息)。其它時間和日期類型,比如 Datetime/Date/Time 是不包含時區(qū)信息的,所以也不受到時區(qū)變化的影響。

mysql> select now(); # 當前
+---------------------+
| now() |
+---------------------+
| 2018-12-25 11:11:11 |
+---------------------+
1 row in set (0.00 sec)

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 ('2018-12-25 11:11:11', '2018-12-25 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 |
+---------------------|---------------------+
| 2018-12-25 11:11:11 | 2018-12-25 11:11:11 |
+---------------------|---------------------+
1 row in set (0.00 sec)
上面的例子中,無論怎么調(diào)整時區(qū)的值, Datetime 類型字段的值是不受影響的,而 Timestamp 則隨著時區(qū)改變,顯示的值會發(fā)生變化。其實 Timestamp 持久化到存儲的值始終沒有變化過,只是根據(jù)時區(qū)的不同顯示值不同。

Timestamp 類型和 Datetime 等類型的值,兩者相互轉(zhuǎn)換的過程中,會涉及到時區(qū)。這種情況一律基于 session 的當前 time_zone 時區(qū)處理。

另外,在導(dǎo)數(shù)據(jù)的過程中,也要需注意主庫和從庫之間的時區(qū)設(shè)定是否一致。

轉(zhuǎn)載于:https://blog.51cto.com/13767724/2335122

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容