1.输出当年全部天数
SELECT TRUNC(SYSDATE, 'YYYY') + ROWNUM - 1 FROM DUAL CONNECT BY ROWNUM <= ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), 12) - TRUNC(SYSDATE, 'YYYY')
2.输出指定月所有天数
SELECT TRUNC(TO_DATE('2023-03', 'YYYY-MM'), 'MM') + LEVEL - 1 CALENDAR_DATE
FROM DUAL
CONNECT BY LEVEL <=
TO_NUMBER(TO_CHAR(LAST_DAY(TO_DATE('2023-03', 'YYYY-MM')),
'DD'))
3.输出当年已过月数
select to_char(add_months(SYSDATE, -t.rn), 'yyyy-mm') TIME_ORD
from dual a, (select rownum - 1 rn from dual connect by rownum <= 12) t
where to_char(add_months(SYSDATE, -t.rn), 'yyyy') =to_char(SYSDATE, 'yyyy')
order by to_char(add_months(SYSDATE, -t.rn), 'yyyy-mm')
4.输出指定月份后一年内所有的月份
select to_char(add_months(TO_DATE('2023-02', 'YYYY-MM'),ROWNUM), 'yyyy/MM') day from dual connect by 13 > ROWNUM