2017-05-17 225 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