我使用的Oracle9i,可以使用分析函数等新增加的函数。
怎么写?有人用过吗?

解决方案 »

  1.   

    select to_date('2006-07-01','yyyy-mm-dd') + i -  1
    from (select rownum as i from cols where rownum < 32);
      

  2.   

    select to_date('2006-07-'||rownum,'yyyy-mm-dd') as rq from all_tables
    where rownum <= substr(to_char(last_day(to_date('2006-07','yyyy-mm')),'yyyy-mm-dd'),9,2)凑合用吧
      

  3.   

    还可以再简单一些
    select to_date('2006-07-'||rownum,'yyyy-mm-dd') as rq from all_tables
    where rownum <= to_char(last_day(to_date('2006-07','yyyy-mm')),'dd')
      

  4.   


    SQL> select to_date('2006-07-' || rownum, 'yyyy-mm-dd')
      2    from (select * from dual connect by 1 = 1)
      3   where rownum <= 31
      4  /TO_DATE('2006-07-'||ROWNUM,'YY
    ------------------------------
    2006-7-1
    2006-7-2
    2006-7-3
    2006-7-4
    2006-7-5
    2006-7-6
    2006-7-7
    2006-7-8
    2006-7-9
    2006-7-10
    2006-7-11
    2006-7-12
    2006-7-13
    2006-7-14
    2006-7-15
    2006-7-16
    2006-7-17
    2006-7-18
    2006-7-19
    2006-7-20TO_DATE('2006-07-'||ROWNUM,'YY
    ------------------------------
    2006-7-21
    2006-7-22
    2006-7-23
    2006-7-24
    2006-7-25
    2006-7-26
    2006-7-27
    2006-7-28
    2006-7-29
    2006-7-30
    2006-7-3131 rows selected
      

  5.   

    这样来得更舒服.不会嵌套,且可以构造N大的连续数:)
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
    Connected as SYS
    SQL> 
    SQL> select to_date('2006-07-' || rownum, 'yyyy-mm-dd')
      2    from dual
      3  connect by rownum <= 31
      4  /TO_DATE('2006-07-'||ROWNUM,'YY
    ------------------------------
    2006-7-1
    2006-7-2
    2006-7-3
    2006-7-4
    2006-7-5
    2006-7-6
    2006-7-7
    2006-7-8
    2006-7-9
    2006-7-10
    2006-7-11
    2006-7-12
    2006-7-13
    2006-7-14
    2006-7-15
    2006-7-16
    2006-7-17
    2006-7-18
    2006-7-19
    2006-7-20TO_DATE('2006-07-'||ROWNUM,'YY
    ------------------------------
    2006-7-21
    2006-7-22
    2006-7-23
    2006-7-24
    2006-7-25
    2006-7-26
    2006-7-27
    2006-7-28
    2006-7-29
    2006-7-30
    2006-7-3131 rows selectedSQL>
      

  6.   

    得到当前月份的所有日期
    select to_date(to_char(sysdate,'yyyy-mm-') || rownum, 'yyyy-mm-dd')
    from (select rownum as i from cols where rownum <= to_number(to_char((select last_day(sysdate) from dual),'dd')));
      

  7.   

    SQL> 
    SQL> select to_date('2006-07-' || rownum, 'yyyy-mm-dd')
      2    from dual
      3  connect by rownum <= 31connect怎么用????
      

  8.   

    select dt from (
    select to_date('2006-07-01', 'yyyy-mm-dd')+rownum-1 dt from dual
    connect by rownum<=to_date('2006-07-31', 'yyyy-mm-dd')-to_date('2006-07-01', 'yyyy-mm-dd') + 1)
      

  9.   

    dreamer001(天涯客) ( ) 信誉:100  2006-7-27 14:11:04  得分: 0  
     
     
       
    SQL> 
    SQL> select to_date('2006-07-' || rownum, 'yyyy-mm-dd')
      2    from dual
      3  connect by rownum <= 31connect怎么用????  
     
    =========================
    这是个递归.要是不明白可以看文档
      

  10.   

    谢谢大家,大家都用到了 connect by 自连接,强!
    我都不知道如何给大家分数了,增加一点吧。谢谢,大家!!!