日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql的时区_MySQL时区支持

發(fā)布時(shí)間:2023/12/20 数据库 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql的时区_MySQL时区支持 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

時(shí)區(qū)支持

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

優(yōu)先使用 TZ 環(huán)境變量

如果失敗,則從 /etc/localtime 的實(shí)際軟鏈地址提取。

如果上面兩種都失敗則使用 UTC 作為系統(tǒng)時(shí)區(qū)。

在運(yùn)行過程中可以修改全局時(shí)區(qū):

mysql> set global time_zone='+8:00'; # 因?yàn)閁TC時(shí)區(qū) 修改時(shí)間 建議使用

mysql> SET GLOBAL time_zone = timezone; # 根據(jù)具體情況使用,不建議禁止使用

TiDB 還可以通過設(shè)置 session 變量 time_zone 為每個(gè)連接維護(hù)各自的時(shí)區(qū)。默認(rèn)條件下,這個(gè)值取的是全局變量 time_zone 的值。修改 session 使用的時(shí)區(qū):

mysql> SET time_zone = timezone;

查看當(dāng)前使用的時(shí)區(qū)的值:

mysql> SELECT @@global.time_zone, @@session.time_zone;

設(shè)置 time_zone 的值的格式:

'SYSTEM' 表明使用系統(tǒng)時(shí)間

相對(duì)于 UTC 時(shí)間的偏移,比如 '+10:00' 或者 '-6:00'

某個(gè)時(shí)區(qū)的名字,比如 'Europe/Helsinki', 'US/Eastern' 或 'MET'

NOW() 和 CURTIME() 的返回值都受到時(shí)區(qū)設(shè)置的影響。

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

mysql> select now(); # 當(dāng)前

+---------------------+

| 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)整時(shí)區(qū)的值, Datetime 類型字段的值是不受影響的,而 Timestamp 則隨著時(shí)區(qū)改變,顯示的值會(huì)發(fā)生變化。其實(shí) Timestamp 持久化到存儲(chǔ)的值始終沒有變化過,只是根據(jù)時(shí)區(qū)的不同顯示值不同。

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

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

總結(jié)

以上是生活随笔為你收集整理的mysql的时区_MySQL时区支持的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。