2017-05-17 257 views
0

首先,我來自印度,正在爲美國客戶工作,所以我使用美國(美國)數據庫。 我試圖顯示當前系統日期和時間,但它顯示美國時間。但我想顯示印度當前的時間。當前系統日期和時間

從dual中選擇sysdate;

+1

使用'CURRENT_DATE','CURRENT_TIMESTAMP'返回當前日期會話時區 sysdate和systimestamp'在系統(服務器)時區的返回日期 –

回答

0
SELECT TO_CHAR 

(SYSDATE, 'MM-DD-YYYY HH24:MI:SS') "NOW" 

FROM DUAL; 

    NOW 
------------------- 
04-13-2001 09:45:51 
+0

它顯示美國時間,我想顯示時間基於時區 –

+0

SELECT CURRENT_DATE FROM DUAL; –

0

試圖改變你的系統時間到印度的時區。我認爲這應該工作。

也可以嘗試改變你的會話time_zoe

ALTER SESSION SET TIME_ZONE = '亞洲/加爾各答';

+0

通常,作爲數據庫開發人員,您無權訪問DB操作服務器上的更改時區。 –

+0

@WernfriedDomscheit這隻會改變當前的用戶會話,我相信我們通常給用戶的訪問權限很大。 –

+0

在你的會議中,你當然可以做你想做的事。但建議是「改變你的**系統**時間」 - 這可能是困難的。 –

0

試試這個,我希望它有助於

https://community.oracle.com/thread/3958062 
https://docs.oracle.com/database/121/SQLRF/functions117.htm#SQLRF00671 

下面的例子說明CURRENT_TIMESTAMP是會話時區敏感:

ALTER SESSION SET TIME_ZONE = '-5:0'; 
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS'; 
SELECT SESSIONTIMEZONE, CURRENT_TIMESTAMP FROM DUAL; 

SESSIONTIMEZONE CURRENT_TIMESTAMP 
--------------- --------------------------------------------------- 
-05:00   04-APR-00 01.17.56.917550 PM -05:00 

ALTER SESSION SET TIME_ZONE = '-8:0'; 
SELECT SESSIONTIMEZONE, CURRENT_TIMESTAMP FROM DUAL; 

SESSIONTIMEZONE CURRENT_TIMESTAMP 
--------------- ---------------------------------------------------- 
-08:00   04-APR-00 10.18.21.366065 AM -08:00