I'd like to select some dates in the format:
yyyydDOY
where yyyy
is the 4-digit year, DOY
is the day of year (1-366), and d
is a literal "d". Here's what I tried:
SQL> select to_char(sysdate, 'YYYYdDDD') from dual;
TO_CHAR(
--------
20130713
Obviously that's all wrong. The result I want can be found on the command line:
$ date +'%Yd%j'
2013d071
First off, the code in the question is read as DDDD
, which the function interprets to be DDD
(the day of year: 071) followed by D
(the day of week: 3).
The solution is to quote any literals with double quotation marks ("
):
SQL> select to_char(sysdate, 'YYYY"d"DDD') from dual;
TO_CHAR(
--------
2013d071
See Table 3-15 Datetime Format Elements for more information.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With