问题描述
选择 (to_char(add_month (sysdate,level-10),'Month')) 作为月份
,to_char(TRUNC(add_month (sysdate,level-10),'month'),'mm/dd/yyy')
,to_char(last_day(add_month (sysdate,level-10)),'mm/dd/yyy') 作为lastdaofmonth
从双重
按级别连接 <= 12
我需要今年的所有12个月,每月的第一天和每月的最后一天,而无需使用level和connect by。
请帮帮我。
,to_char(TRUNC(add_month (sysdate,level-10),'month'),'mm/dd/yyy')
,to_char(last_day(add_month (sysdate,level-10)),'mm/dd/yyy') 作为lastdaofmonth
从双重
按级别连接 <= 12
我需要今年的所有12个月,每月的第一天和每月的最后一天,而无需使用level和connect by。
请帮帮我。
专家解答
像这样的事情应该可以解决问题
SQL> with t(mth,lst,x) as 2 ( 3 select trunc(sysdate,'YY') mth, last_day(trunc(sysdate,'YY')) lst, 0 x from dual 4 union all 5 select add_months(mth,1), add_months(lst,1), x+1 6 from t 7 where x < 11 8 ) 9 select mth,lst from t; MTH LST --------- --------- 01-JAN-19 31-JAN-19 01-FEB-19 28-FEB-19 01-MAR-19 31-MAR-19 01-APR-19 30-APR-19 01-MAY-19 31-MAY-19 01-JUN-19 30-JUN-19 01-JUL-19 31-JUL-19 01-AUG-19 31-AUG-19 01-SEP-19 30-SEP-19 01-OCT-19 31-OCT-19 01-NOV-19 30-NOV-19 01-DEC-19 31-DEC-19 12 rows selected.
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




