select substr(to_char(Last_day(to_date('200403','YYYYMM')),'YYYYMM'),0,2) FROM DUAL

解决方案 »

  1.   

    select substr(to_char(Last_day(to_date('200403','YYYYMM')),'YYYYMMDD'),7,8) FROM DUAL
    先把200403转换成日期格式,然后计算该日期的最后一天,得到20040331,然后转换成字符,然后截取最后两位就是该日期做在月份的天数了,这是想法,我没做测试。
    如果用sysdate也差不多,关键是使用last_day函数,
      

  2.   

    同意楼上方法!!学习ING......
      

  3.   

    select to_char(last_day(to_date('200403','YYYYMM')),'dd') from dual;
      

  4.   

    select to_char(last_day(sysdate),'dd') from dual;
      

  5.   

    上个月:
    select to_char(last_day(add_months(sysdate,1)),'dd') from dual
    下个月:
    select to_char(last_day(add_months(sysdate,1)),'dd') from dual
      

  6.   

    更正:
    下个月:
    select to_char(last_day(add_months(sysdate,-1)),'dd') from dual
      

  7.   

    select to_char(day from last_day(sysdate)) from dual
      

  8.   

    经本人测试:dinya2003() , csqno1(朱茵追我整條街) ,welyngj(平平淡淡) , Lulq21cn(望尘) 的答案都正确