根据年月信息获取当月月末日期和指定区间起始日期
--@param year 统计年
--@param month 统计月份
--@param step 统计跨度(1,3,12)月度、季度、年
WITH DT AS
(SELECT 2020 YEAR,02 MONTH ,1 step FROM DUAL
) ,
PARAM AS
(SELECT TO_DATE(
(SELECT (YEAR+TRUNC(dt.MONTH/12))
||'-'
||TO_CHAR(mod(DT.MONTH+1,12))
FROM DT
),'YYYY-MM' )-1 MendDate,
ADD_MONTHS(TO_DATE(
(SELECT YEAR ||'-' ||TO_CHAR(dt.MONTH) FROM DT
),'YYYY-MM' ),(-1*dt.step)+1) MstartDate,
dt.step step
FROM DUAL,DT
WHERE 1=1
)
select * from PARAM;