select month,
min(decode(weekday,1,day)) "日",
min(decode(weekday,2,day)) "一",
min(decode(weekday,3,day)) "二",
min(decode(weekday,4,day)) "三",
min(decode(weekday,5,day)) "四",
min(decode(weekday,6,day)) "五",
min(decode(weekday,7,day)) "六"
from (
SELECT a.day,to_char(day,'yyyyMM') month,decode(sign(rn-weekday),1,week+1,week) week,weekday
FROM (select day,
to_char(day, 'mm') month,
to_char(day, 'w') week, --周第
to_char(day, 'd') weekday, --礼拜几
row_number() over(partition by to_char(day, 'mm'), to_char(day, 'w') order by day) rn --安照month和week排个序
from (select trunc(sysdate, 'yyyy') + level - 1 day --今年全部年月日
from dual
connect by rownum <= trunc(sysdate+365,'yyyy')-trunc(sysdate,'yyyy'))
) a )
GROUP BY month,week
ORDER BY month,week;
oracle写个日历(转)
最新推荐文章于 2022-01-07 11:46:44 发布