问题描述
程序中由于时区设置问题,导致程序报错,那么该如何修改RDS PostgreSQL的时区?
问题分析
可以对数据库的时区做不同级别的修改,包含全局、数据库、用户级、会话级。
解决方案
例如要将默认的PRC修改为UTC
1.全局参数
修改PostgreSQL参数组配置文件postgresql.conf
[root@iv-38der6cb2agc9tvqv0qf data]# cat postgresql.conf | grep "^timezone"
timezone = 'UTC'
2.修改数据库级别的timezone
postgres=# create database demo;
CREATE DATABASE
(1 row)
#修改数据库级别的timezone
postgres=# alter database demo set timezone='UTC';
ALTER DATABASE
postgres=# show timezone;
TimeZone
---------------
Asia/Shanghai
(1 row)
postgres=# \c demo;
You are now connected to database "demo" as user "postgres".
demo=# show timezone;
TimeZone
----------
UTC
(1 row)
3.修改用户级别的timezone,命令和示例如下:`
单个用户的修改
demo=# alter role demo set timezone='UTC';
所有用户的修改
demo=# alter role all set timezone='UTC';
4.会话级别的修改,支队当前连接生效。
postgres=# set timezone='Asia/Shanghai';
SET
postgres=# show timezone;
TimeZone
---------------
Asia/Shanghai
(1 row)
postgres=# exit
[postgres@iv-38der6cb2agc9tvqv0qf ~]$ psql
psql (12.10)
Type "help" for help.
postgres=# show timezone;
TimeZone
----------
UTC
(1 row)
如果您有其他问题,欢迎您联系火山引擎技术支持服务