如何获得当前日期上个周日的日期?例如今日是20120618 上周日是 20120617 又如 当前日若是20120607 上周日是 20120607

解决方案 »

  1.   

      IF TO_CHAR(IN_STAT_DATE,'D') =1 THEN  
        RESULT := NEXT_DAY(TRUNC(IN_STAT_DATE,'DD')-1,'SUNDAY')-7 ;
    ELSE
        RESULT := NEXT_DAY(TRUNC(IN_STAT_DATE,'DD'),'SUNDAY')-7 ;
      END IF ;
      return(Result);-----严谨不?
      

  2.   

    select sysdate - to_char(sysdate, 'd') + 1 from dual;
      

  3.   

    周日应该是每个星期的第一天吧
    select trunc(sysdate,'d') from dual;
      

  4.   


      ++1 
    to_char(sysdate, 'd') 得出从周日开始的当周第几天  当前时间减去得到上 周六的日期 +1 =周日 
      

  5.   

    select sysdate - to_char(sysdate, 'd') ++ 1 from dual