求一个月中最后一个星期天的日期
求一个月中最后一个星期天的日期:
select trunc(trunc(sysdate,'mm'),'iw') -1 from dual;
理解:
由语句select trunc(sysdate ,'iw') from dual 为求出当天所在周的星期一的日期,推出语句select trunc(v_date ,'iw') from dual 为求出第一个日期变量所在周的星期一的日期,要特别说明的一点是这里所说的周是指ISO周(即规定星期一为一周的第一天,星期天为一周的最后一天)。因此可知select trunc(trunc(sysdate,'mm'),'iw') from dual;求出的即为当月第一天所在周的星期一的日期。而一个月的第一天所在周(ISO周)的星期一要么在这个月的第一天,要么就在上一个月中。因此如果我们在此基础上再减一,得到应该就是上个月的最后一个星期天的日期。即select trunc(trunc(sysdate,'mm'),'iw') -1 from dual;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10595277/viewspace-402626/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10595277/viewspace-402626/