Oracle current_date和sysdate时间不一致解决

[img]http://dl2.iteye.com/upload/attachment/0098/6251/acab11b5-74f0-3798-ae3d-c78296841dd2.jpg[/img]
前段时间,发现一套新装载的Rac数据库所在操作系统时间不对,查询dbtimezone发现为-06:00,说明时区不对;
select dbtimezone from dual;

DBTIME

---------

-06:00

OK,先将rac停掉,再在一段启动数据库,更改time_zone参数:

alter database set time_zone='+08:00';

更改参数后,将数据库shutdown,再将Rac数据库启动起来;

接着分别运行以下SQL,查看时间是否校准:

select sysdate from dual;

select current_date from dual;

select current_timestamp from dual;

host date

select systimestamp from dual;

在sqlplus中发现时间一致,但是开发反应使用pl/sql查询的时候显示时间不一致。即sysdate,systimestamp很current_date,current_timestamp的时间不一致。

都知道sysdate,systimestamp取的是系统的时间,为什么sqlplus中查询的值是准确的值,而通过pl/sql连接查询的值就不是准确的?

为了定位是不是数据库的问题,在该操作系统上使用DBCA重新创建一个test DB,之后查看该test数据库,发现问题依旧,从此处可以大概估算下应该不是数据库的问题,是操作系统的问题。

在AIX操作系统下date看到操作系统时区为BEIST-8,由于是测试库,将操作系统时区改为CST(Asia/shanghai)之后,重启操作系统,使用pl/sql连接数据库,发现问题解决,所有时间均一致,且都在东八区。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值