SQL> SELECT
2 LEVEL Month,
3 TO_CHAR(LAST_DAY(TO_DATE(LEVEL || '/1/' ||
4 TO_CHAR(SYSDATE, 'YYYY'), 'MM/DD/YYYY')),'DD') Days
5 FROM
6 Dual
7 CONNECT BY
8 LEVEL <= 12;
MONTH DA
---------- --
1 31
2 28
3 31
4 30
5 31
6 30
7 31
8 31
9 30
10 31
11 30
12 31
12 rows selected.
####
SELECT
TO_CHAR(ADD_MONTHS(TO_DATE('1', 'DDD'), LEVEL) - 1, 'DD')
FROM
Dual
CONNECT BY
LEVEL < 13;
##
##
SELECT
TO_CHAR(ADD_MONTHS(DATE '2014-1-1', LEVEL) - 1, 'DD')
FROM
Dual
CONNECT BY
LEVEL < 13;
##
##
SELECT TO_CHAR(LAST_DAY(TO_DATE(LEVEL,'MM')),'DD')FROM Dual CONNECT BY LEVEL<13;