我有一个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
提前致谢。
答案 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;
希望这适合你。