是否可以以TO_CHAR(日期时间)格式插入文字字符?

时间:2013-03-12 22:05:50

标签: sql oracle plsql

我想以格式选择一些日期:

yyyydDOY

其中yyyy是4位数年份,DOY是一年中的某一天(1-366),d是文字“d”。这是我试过的:

SQL> select to_char(sysdate, 'YYYYdDDD') from dual;

TO_CHAR(
--------
20130713

显然这都错了。我想要的结果可以在命令行中找到:

$ date +'%Yd%j'
2013d071

1 个答案:

答案 0 :(得分:13)

首先,问题中的代码读作DDDD,函数解释为DDD(一年中的某一天:071),然后是D(当天的周:3)。

解决方案是引用任何带双引号(")的文字:

SQL> select to_char(sysdate, 'YYYY"d"DDD') from dual;

TO_CHAR(
--------
2013d071

有关详细信息,请参阅Table 3-15 Datetime Format Elements