Oracle current_date和sysdate時間不一致


前段時間,發現一套新裝載的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連接數據庫,發現問題解決,所有時間均一致,且都在東八區。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM