select to_date((to_char(sysdate,'yyyy')+1)||'0101','yyyymmdd')-to_date(to_char(sysdate,'yyyy')||'0101','yyyymmdd') from dual;//当年日历天数
select to_date((to_char(sysdate,'yyyymm')+1)||'01','yyyymmdd')-to_date(to_char(sysdate,'yyyymm')||'01','yyyymmdd') from dual;//当月日历天数

解决方案 »

  1.   

    当月天数:
    SQL> select to_char(last_day(sysdate),'dd') from dual;TO
    --
    31已选择 1 行。
      

  2.   

    不好意思,计算当月日历天数的语句应该是select to_date(to_char(add_months(sysdate,1),'yyyymm')||'01','yyyymmdd')-to_date(to_char(sysdate,'yyyymm')||'01','yyyymmdd') from dual;
      

  3.   

    当年日历天数:
    SQL> select to_char(trunc(sysdate,'yyyy') + interval '1' year -1,'ddd') from dual;TO_
    ---
    365