sql代码打印2012年的所有星期一

时间:2012-12-13 05:38:53

标签: sql oracle oracle10g oracle11g

2012
     January
            2/1/2012
            9/1/2012
            16/1/2012
            23/1/2012
            30/1/2012
     February
            6/2/2012
                .
                .
                .
                .

等到12月。提到的日期是星期一。我怎么得到这种格式的输出?请帮忙

2 个答案:

答案 0 :(得分:2)

一个选项

SQL> ed
Wrote file afiedt.buf

  1  select next_day(trunc(sysdate,'YYYY') + 7*(level-1), 'MON' )
  2    from dual
  3* connect by level <= 53
SQL> /

NEXT_DAY(
---------
02-JAN-12
09-JAN-12
16-JAN-12
23-JAN-12
30-JAN-12
06-FEB-12
13-FEB-12
20-FEB-12
27-FEB-12
05-MAR-12
12-MAR-12
<<snip>>
03-DEC-12
10-DEC-12
17-DEC-12
24-DEC-12
31-DEC-12

53 rows selected.

答案 1 :(得分:0)

查询:

select distinct next_day(to_date('01-01-2012','mm-dd-yyyy')-1+level,'Monday') All_MON from dual 
connect by level <= floor(to_date('12-31-2011','mm-dd-yyyy') - to_date('01-01-2011','mm-dd-yyyy'))
order by All_MON;

输出:

01/02/2012星期一
01/09/2012星期一
01/16/2012星期一
01/23/2012星期一
01/30/2012星期一
02/06/2012星期一
02/13/2012星期一
02/20/2012星期一
02/27/2012星期一
03/05/2012星期一
03/12/2012星期一
03/19/2012星期一
03/26/2012星期一
04/02/2012星期一
04/09/2012星期一
04/16/2012星期一
04/23/2012星期一
04/30/2012星期一
05/07/2012星期一
05/14/2012星期一
05/21/2012星期一
05/28/2012星期一
06/04/2012星期一
06/11/2012星期一
06/18/2012星期一
06/25/2012星期一
07/02/2012星期一
07/09/2012星期一
07/16/2012星期一
07/23/2012星期一
07/30/2012星期一
08/06/2012星期一
08/13/2012星期一
08/20/2012星期一
08/27/2012星期一
09/03/2012星期一
09/10/2012星期一
09/17/2012星期一
09/24/2012星期一
10/01/2012星期一
10/08/2012星期一
10/15/2012星期一
10/22/2012星期一
10/29/2012星期一
11/05/2012星期一
11/12/2012星期一
11/19/2012星期一
11/26/2012星期一
12/03/2012星期一
12/10/2012星期一
12/17/2012星期一
12/24/2012星期一
12/31/2012星期一