显示日期为2011年5月1日Oracle SQL

时间:2013-10-02 15:14:00

标签: sql database oracle date

我有一个包含多个日期的日期列,我需要查询才能将日期显示为

- January 1st of 1999 -

用破折号。

有人可以帮忙吗?

谢谢

1 个答案:

答案 0 :(得分:2)

您可以通过enclosing them in double quotes将日期格式掩码中的固定值设置为:

with t as (select date '1999-01-01' as dt from dual)
select to_char(dt, 'fm"-" Month ddth "of" YYYY "-"')
from t;

TO_CHAR(DT,'FM"-"MONTHDDTH"OF"YYYY"-"')
---------------------------------------
- January 1st of 1999 -                 

或者显示今天的日期:

select to_char(sysdate, 'fm"-" Month ddth "of" YYYY "-"') from dual;

TO_CHAR(SYSDATE,'FM"-"MONTHDDTH"OF"YYYY"-"')        
-----------------------------------------------------
- October 2nd of 2013 -                               

fm 'fill mode' modifier停止用空格填充月份名称,并删除通常从dd获得的前导零。

双引号在破折号附近实际上是可选的,因为无论如何它们都被允许('fm- Month ddth "of" YYYY -'也能正常工作),但在这种情况下我可能会引用它们来表明它们是不寻常的。