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 に答える