是否可以按以下格式显示sysdate?
Wed Oct 16 15:04:44 MDT 2013
这是unix日期格式。
echo `date`
编辑:最新版本缺少时区信息。此外,我不确定这是否是最优雅的解决方案:
SELECT TO_CHAR (sysdate, 'DY') || ' ' || to_char(sysdate, 'MON DD') || ' ' || to_char(sysdate, 'HH24:MM:SS' ) || ' ' || to_char(sysdate, 'YYYY' )
FROM DUAL ;
答案 0 :(得分:3)
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
修改强>
10月16日星期三:12:0 2013年是我得到的
尝试明确指定会话的准确时区区域。因为可能有多个时区区域与一个偏移相关联,而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