如果RDS PostgreSQL執行個體的時區設定與商務邏輯需要的時區不一致,或者應用程式需要處理多個時區的資料,則需要修改資料庫執行個體的時區配置,以確保資料在不同時區之間的轉換和展示正確無誤。
前提條件
RDS PostgreSQL雲端硬碟版執行個體。
注意事項
SET timezone
語句僅當前會話生效,無法持久化,建議通過設定執行個體參數功能進行修改。如果您需要為某個資料庫單獨設定時區,請使用
ALTER DATABASE <資料庫名稱> SET timezone TO '<時區名>';
語句進行修改。說明如果需要恢複某個資料庫至系統預設時區,請使用
ALTER DATABASE <資料庫名稱> SET timezone TO DEFAULT;
語句恢複預設。PostgreSQL支援TIMESTAMP和TIMESTAMPTZ兩種儲存時間戳記的資料類型,請您根據實際業務需求,選擇不同資料類型:
TIMESTAMP:該資料類型會以UTC時間儲存日期和時間,不會儲存時區資訊。如果您參考本文檔修改時區後,該類型的查詢結果不會變化。
TIMESTAMPTZ:該資料類型會儲存日期、時間以及時區資訊。當儲存時間資料時,會將時間轉換為UTC時間儲存到表中,當查詢時間資料時,會將UTC時間轉換為當前執行個體或資料庫所設定的時區對應的時間。如果您參考本文檔修改時區後,該類型的查詢結果會根據時區變化而自動變化。
修改時區
RDS PostgreSQL雲端硬碟版執行個體支援修改設定檔中的時區設定,您可以在控制台的參數設定頁面修改參數timezone。操作詳情請參見設定執行個體參數。
RDS PostgreSQL本地碟執行個體暫不支援timezone參數。
查看支援的時區
您可以使用如下命令查看支援的時區:
SELECT name,utc_offset FROM pg_timezone_names;
關於pg_timezone_names表的更多資訊,請參見pg_timezone_names。
相關文檔
如果購買執行個體時,如果不配置時區參數,系統將根據您購買執行個體的地區,選擇預設時區。地區與預設命名時區的對應關係,請參見RDS PostgreSQL執行個體地區與預設命名時區對應關係。
RDS PostgreSQL只支援命名時區,不支援UTC時區。命名時區的詳細資料,請參見RDS PostgreSQL執行個體的常用命名時區清單。
您還可以通過API修改參數timezone。
API
描述
修改執行個體參數