sysdate
返回date
数据类型的值,它不包含有关时区的信息。为了能够显示时区区域的缩写版本,您需要对具有时区数据类型的时间戳值进行操作,并TZD
在日期时间格式掩码中使用格式元素:
select to_char( cast(sysdate as timestamp with local time zone)
, 'Dy Mon dd hh24:mi:ss TZD yyyy') as res
from dual
结果:
RES
-------------------------------
Thu Oct 17 02:14:00 PDT 2013
编辑
2013 年 10 月 16:12:0 星期三是我得到的
尝试为会话明确指定确切的时区区域。因为可能有多个时区区域与一个偏移量相关联,oracle 将无法选择一个并返回 null。所以在执行查询之前执行alter session set time_zone='<<specify_exact_time_zone_region>>'
。例如:
SQL> alter session set time_zone='Canada/Mountain';
Session altered.
SQL> select to_char( cast(sysdate as timestamp with local time zone)
2 , 'Dy Mon dd hh24:mi:ss TZD yyyy') as res
3 from dual;
RES
-------------------------------
Thu Oct 17 02:51:14 MDT 2013