2016-11-16 42 views
1

下面的查詢用於我的代碼從數據庫中獲取時區。 (DB在中央時區)在oracle中的時區問題

SELECT DBTIMEZONE FROM DUAL; 
-05:00 

夏令時開啓時(CDT),其預期結果。

但夏令時結束時(CST),我的結果應該是GMT-06,但我仍然得到GMT-05。

一派,有以下選項:

SELECT TO_CHAR(SYSTIMESTAMP, 'TZR') FROM dual; 

SELECT TZ_OFFSET('CST6CDT') FROM DUAL; 

請問上述查詢正確運行據此來CST和CDT?

+0

*你究竟如何配置數據庫在中央時區?這與Java有什麼關係? –

回答

1

DBTIMEZONE確定SYSTIMESTAMP(或SYSDATE)時區

時間SYSTIMESTAMP區是數據庫服務器的操作系統的時區。

DBTIMEZONE僅與數據類型TIMESTAMP WITH LOCAL TIME ZONE相關,並定義這些值在internaly內存儲的時區。如果數據庫包含一個包含TIMESTAMP WITH LOCAL TIME ZONE列且列包含數據的表,則不能在數據庫上更改DBTIMEZONE