Oracle数据库托管在美国。在英国托管的应用服务器。如何使用IST时区从ORACLE数据库选择日期时间
我想从印度访问oracle应用程序,我该如何编写一个显示IST时间的查询。 (本地机器时间)。
这是一个oracle形式,所以不能编码。
下面试过,但没有工作
SELECT
TO_CHAR(current_date, 'DD-MON-YYYY HH24:MI')
FROM DUAL
Oracle数据库托管在美国。在英国托管的应用服务器。如何使用IST时区从ORACLE数据库选择日期时间
我想从印度访问oracle应用程序,我该如何编写一个显示IST时间的查询。 (本地机器时间)。
这是一个oracle形式,所以不能编码。
下面试过,但没有工作
SELECT
TO_CHAR(current_date, 'DD-MON-YYYY HH24:MI')
FROM DUAL
更改您的时区与该第一,
systimestamp AT TIME ZONE 'IST'
这看起来不像Oracle命令 –
它是。但可能它应该是'从'dual'选择'AT TIME ZONE'亚洲/加尔各答'的系统时间戳;' – Noel
是的,你是对的。对不起,我无法撤销我的downvote。你的帖子稍作修改:它必须是'亚洲/加尔各答' –
印度的时间是格林尼治时间-4小时,SYS_EXTRACT_UTC(SYSTIMESTAMP)
给出时间GMT任何Oracle服务器
select to_char(SYS_EXTRACT_UTC(SYSTIMESTAMP) +
(5.5/24), 'DD-MON-YY HH24:MI:SS') from dual;
请注意,这(也许)仅适用,因为印度不在DST之下... –
@ Clockwork-Muse:你是对的,印度不在夏令时,因此这个查询将永远为印度工作:) – San
首先更改会话的时区:
ALTER SESSION SET TIME_ZONE = 'Asia/Calcutta';
SELECT TO_CHAR(CURRENT_DATE, 'DD-MON-YYYY HH24:MI') FROM dual;
注意,不能使用短名称,因为“IST”也被用于“印度标准时间”和“伊朗标准时间”和“以色列标准时间”和“印尼标准时间”。因此,Oracle需要全名(参见IANA time zone database)或UTC偏移量,例如, ALTER SESSION SET TIME_ZONE = '+5:30';
。但是,如果您的国家使用DST(夏令时),则此风险更大。
我不知道oracle形式;但是可以将TZ_OFFSET函数用于IST。 – Sanjeev