详细内容
postgresql时间相差8小时
发布日期:2023-05-05     点击:373     字体:[ ]

使用postgresql,保存时使用的current_timestamp保存当前时间,但发现保存到数据库与实际时间差8小时,

查看服务器时间是正常的,经查询是因为时区设置问题,所以需要修改数据库时区配置

如果只是在数据库连接工具里修改,这个是session级别,重启数据库后执行程序,发现没有修复,改成数据库级别

时间得到修复,修改配置文件,可以全部修复,修改后需要重启数据库,可使用pg_ctl reload -D [数据保存路径]


//查看时区

postgres=# show timezone;

TimeZone

PRC

(1 row)


修改pg时区

//视图pg_timezone_names保存了所有可供选择的时区

postgres=# select * from pg_timezone_names;


session级配置

//修改时区,注意此默认为session级别

postgres=# set time zone ‘PRC’;

SET


用户级配置

alter role rolname set timezone=‘UTC’;

或者

alter role all set timezone=‘UTC’;


数据库级配置

alter database dbname set timezone=‘UTC’;


全局配置(永久生效)

//查看配置文件中时区设置,要想永久生效,此时需要修改配置文件

[root@localhost ~]$ grep timezone postgresql.conf

log_timezone = ‘US/Pacific’

timezone = ‘US/Pacific’


//修改完配置时重新加载,reload后面可能需要增加-D参数指定数据路径和-C指定配置文件

[root@localhost ~]$ pg_ctl reload 

server signaled


用户评论
昵称 
内容  *
验证码   
   
Copyright © 2010 zdbase.com All Rights Reserved. 苏ICP备15039389号 可人软件设计