Oracle中利用SQL语句显示本月日历

今日看精通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)

实验结果为:

Oracle中利用SQL语句显示本月日历_第1张图片

总结:获取日历中比较关键的就是获取本月月初是周几以及本月有多少天。

你可能感兴趣的:(oracle,sql,Date,null,sun,日历)