博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

求两个日期范围内有多少个星期天?

Posted on 2007-05-24 10:33  大胸宝腚  阅读(218)  评论(0)    收藏  举报
 

方法一:
------------------------------------------------------------------------------------------------------------
select count(*)
  from (select trunc(TO_DATE('2005/11/04', 'YYYY/MM/DD'), 'MM') + rownum - 1 as d
          from dba_objects) x
 where trunc(x.d) between trunc(TO_DATE('2005/11/04', 'YYYY/MM/DD')) and
       trunc(TO_DATE('2007/04/13', 'YYYY/MM/DD'))
   and to_char(x.d, 'd') = '1';

蓝色的为开始日期,红色的为结束日期。

注意:to_char(x, 'd'),星期天是'1',星期一是'2'.....星期六是'7'
-------------------------------------------------------------------------------------------------------------

方法二:
select trunc((to_date('2006/11/23','YYYY/MM/DD')-NEXT_DAY(to_date('2006/10/20','YYYY/MM/DD'),1))/7)+1 from dual;