今日看精通ORACLE PL/SQL中代码
oracle中可以利用SQL和及其日期处理函数实现本月日历的展示
select max(decode(dow, 1, d, null)) Sun,
max(decode(dow, 2, d, null)) Mon,
max(decode(dow, 3, d, null)) Tue,
max(decode(dow, 4, d, null)) Wed,
max(decode(dow, 5, d, null)) Thu,
max(decode(dow, 6, d, null)) Fri,
max(decode(dow, 7, d, null)) Sat
from (select rownum d,
rownum - 2 +
to_number(to_char(trunc(sysdate, 'MM'), 'D')) p,
to_char(trunc(sysdate, 'MM') -1 + rownum, 'D') dow
from all_objects
where rownum <=
to_number(to_char(last_day(to_date(sysdate)), 'DD')))
group by trunc(p / 7)
实验结果为:
总结:获取日历中比较关键的就是获取本月月初是周几以及本月有多少天。