修改RDS PostgreSQL實(shí)例的時(shí)區(qū)配置
如果RDS PostgreSQL實(shí)例的時(shí)區(qū)設(shè)置與業(yè)務(wù)邏輯需要的時(shí)區(qū)不一致,或者應(yīng)用程序需要處理多個(gè)時(shí)區(qū)的數(shù)據(jù),則需要修改數(shù)據(jù)庫實(shí)例的時(shí)區(qū)配置,以確保數(shù)據(jù)在不同時(shí)區(qū)之間的轉(zhuǎn)換和展示正確無誤。
前提條件
RDS PostgreSQL云盤版實(shí)例。
注意事項(xiàng)
SET timezone
語句僅當(dāng)前會(huì)話生效,無法持久化,建議通過設(shè)置實(shí)例參數(shù)功能進(jìn)行修改。如果您需要為某個(gè)數(shù)據(jù)庫單獨(dú)設(shè)置時(shí)區(qū),請(qǐng)使用
ALTER DATABASE <數(shù)據(jù)庫名稱> SET timezone TO '<時(shí)區(qū)名>';
語句進(jìn)行修改。說明如果需要恢復(fù)某個(gè)數(shù)據(jù)庫至系統(tǒng)默認(rèn)時(shí)區(qū),請(qǐng)使用
ALTER DATABASE <數(shù)據(jù)庫名稱> SET timezone TO DEFAULT;
語句恢復(fù)默認(rèn)。PostgreSQL支持TIMESTAMP和TIMESTAMPTZ兩種存儲(chǔ)時(shí)間戳的數(shù)據(jù)類型,請(qǐng)您根據(jù)實(shí)際業(yè)務(wù)需求,選擇不同數(shù)據(jù)類型:
TIMESTAMP:該數(shù)據(jù)類型會(huì)以UTC時(shí)間存儲(chǔ)日期和時(shí)間,不會(huì)存儲(chǔ)時(shí)區(qū)信息。如果您參考本文檔修改時(shí)區(qū)后,該類型的查詢結(jié)果不會(huì)變化。
TIMESTAMPTZ:該數(shù)據(jù)類型會(huì)存儲(chǔ)日期、時(shí)間以及時(shí)區(qū)信息。當(dāng)存儲(chǔ)時(shí)間數(shù)據(jù)時(shí),會(huì)將時(shí)間轉(zhuǎn)換為UTC時(shí)間存儲(chǔ)到表中,當(dāng)查詢時(shí)間數(shù)據(jù)時(shí),會(huì)將UTC時(shí)間轉(zhuǎn)換為當(dāng)前實(shí)例或數(shù)據(jù)庫所設(shè)置的時(shí)區(qū)對(duì)應(yīng)的時(shí)間。如果您參考本文檔修改時(shí)區(qū)后,該類型的查詢結(jié)果會(huì)根據(jù)時(shí)區(qū)變化而自動(dòng)變化。
修改時(shí)區(qū)
RDS PostgreSQL云盤版實(shí)例支持修改配置文件中的時(shí)區(qū)設(shè)置,您可以在控制臺(tái)的參數(shù)設(shè)置頁面修改參數(shù)timezone。操作詳情請(qǐng)參見設(shè)置實(shí)例參數(shù)。
RDS PostgreSQL本地盤實(shí)例暫不支持timezone參數(shù)。
查看支持的時(shí)區(qū)
您可以使用如下命令查看支持的時(shí)區(qū):
SELECT name,utc_offset FROM pg_timezone_names;
關(guān)于pg_timezone_names表的更多信息,請(qǐng)參見pg_timezone_names。
相關(guān)文檔
如果購(gòu)買實(shí)例時(shí),如果不配置時(shí)區(qū)參數(shù),系統(tǒng)將根據(jù)您購(gòu)買實(shí)例的地域,選擇默認(rèn)時(shí)區(qū)。地域與默認(rèn)命名時(shí)區(qū)的對(duì)應(yīng)關(guān)系,請(qǐng)參見RDS PostgreSQL實(shí)例地域與默認(rèn)命名時(shí)區(qū)對(duì)應(yīng)關(guān)系。
RDS PostgreSQL只支持命名時(shí)區(qū),不支持UTC時(shí)區(qū)。命名時(shí)區(qū)的詳細(xì)信息,請(qǐng)參見RDS PostgreSQL實(shí)例的常用命名時(shí)區(qū)清單。
您還可以通過API修改參數(shù)timezone。
API
描述
修改實(shí)例參數(shù)