2017-05-17 28 views
0

まず、私はインド出身で、米国の顧客のために働いていますので、US(アメリカ)データベースを使用しています。 私は現在のSysdateと時間を表示しようとしましたが、米国時間を示しています。インドの現在の時間を表示したい。現在のsysdateと時刻

select sysdate from dual;

+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

DUALからSELECT CURRENT_DATE; –

0

システム時間をインドのタイムゾーンに変更してください。私はこれがうまくいくと思います。また

ALTER SESSION SET TIME_ZONE = 'アジア/カルカッタ' time_zoeあなたのセッションを変更してみてください。

+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 
関連する問題