5

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

yyyydDOY

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

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

TO_CHAR(
--------
20130713

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

$ date +'%Yd%j'
2013d071
4

1 回答 1

18

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

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

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

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

有关详细信息,请参阅表 3-15 日期时间格式元素

于 2013-03-12T22:05:49.817 回答