在Oracle中的to_char()中显示时区描述

时间:2015-08-06 14:16:10

标签: java sql oracle

我有一个SQL查询

select to_char(cast(sysdate as timestamp with LOCAL time zone), 'YYYY-MM-DD, HH24:MI:SS TZR') from dual

此返回输出为

2015-08-06, 04:09:10 +05:30 

任何人都有任何线索获得如下输出

2015-08-06, 04:09:10 IST

提前致谢。

2 个答案:

答案 0 :(得分:2)

通常,您无法显示TIMESTAMP WITH LOCAL TIME ZONE值的时区,因为根据定义,它始终是您当前的本地时区。

+05:30是您当前的时区,您可以通过以下方式进行验证:

SELECT SESSIONTIMEZONE FROM dual;

你做不到

ALTER SESSION SET TIME_ZONE = 'IST';

因为IST也用于“冰岛标准时间”,“爱尔兰标准时间”,“以色列标准时间”等。

但是,你可以使用它:

SELECT TO_CHAR(CAST(LOCALTIMESTAMP AS TIMESTAMP WITH LOCAL TIME ZONE), 'YYYY-MM-DD, HH24:MI:SS TZD') FROM dual;

注意,TZD表示“夏令时信息”。如果印度有夏令时,你的TZD可能会改变。

答案 1 :(得分:-2)

我已将TIMESTAMP转换为UTC并为其添加了5.5小时。如下所示

SELECT TO_CHAR(SYS_EXTRACT_UTC(systimestamp) + (5.5/24))|| ' IST' FROM DUAL;

希望这适合你。