我有一个 SQL 查询
select to_char(cast(sysdate as timestamp with LOCAL time zone), 'YYYY-MM-DD, HH24:MI:SS TZR') from dual
Run Code Online (Sandbox Code Playgroud)
此返回输出为
2015-08-06, 04:09:10 +05:30
Run Code Online (Sandbox Code Playgroud)
任何人都有任何线索可以得到如下输出
2015-08-06, 04:09:10 IST
Run Code Online (Sandbox Code Playgroud)
提前致谢。
一般来说,您无法显示TIMESTAMP WITH LOCAL TIME ZONE值的时区,因为根据定义,它始终是您当前的本地时区。
+05:30是您当前的时区,您可以通过以下方式验证:
SELECT SESSIONTIMEZONE FROM dual;
Run Code Online (Sandbox Code Playgroud)
你不能这样做
ALTER SESSION SET TIME_ZONE = 'IST';
Run Code Online (Sandbox Code Playgroud)
因为IST也用于“冰岛标准时间”、“爱尔兰标准时间”、“以色列标准时间”等。
但是,您可以使用这个:
SELECT TO_CHAR(CAST(LOCALTIMESTAMP AS TIMESTAMP WITH LOCAL TIME ZONE), 'YYYY-MM-DD, HH24:MI:SS TZD') FROM dual;
Run Code Online (Sandbox Code Playgroud)
注意,TZD表示“夏令时信息”。如果印度实行夏令时,您的 TZD 可能会发生变化。