PgAdmin 4时区时间戳列显示异常:PostgreSQL设UTC+07却显示-7
解决PgAdmin 4显示PostgreSQL时区与数据库设置不一致的问题
具体解决方法
1. 调整PgAdmin 4的用户时区配置
- 打开PgAdmin 4,点击右上角用户头像进入偏好设置(Preferences)
- 在设置列表中找到Timezone选项,选择
UTC+07:00或者对应的具体时区名称(如Asia/Ho_Chi_Minh、Asia/Bangkok) - 保存设置后重启PgAdmin 4,查看时间列的显示是否恢复正常
2. 检查数据库连接的时区参数
- 在PgAdmin 4中右键点击目标数据库服务器,选择Properties(属性)
- 切换到Parameters(参数)标签页,搜索
timezone参数 - 确认参数值是否与数据库设置的
UTC+07:00一致,若不一致则修改为正确值,应用后重新连接数据库
3. 再次验证数据库时区设置
- 执行以下SQL语句确认数据库的默认时区配置:
SHOW timezone; SELECT name, setting FROM pg_settings WHERE name = 'timezone'; - 确保返回的
setting值为UTC+07:00或对应的时区名称,排除会话级临时覆盖的可能
4. 确认时间列的数据类型
- 若时间列使用的是
timestamp without time zone类型,PostgreSQL会直接存储本地时间,客户端不会进行时区转换;建议使用timestamp with time zone(timestamptz)类型,这样系统会基于UTC存储,并根据客户端时区自动转换显示
内容的提问来源于stack exchange,提问作者Doan Van Thang
相关产品推荐
相关产品推荐

