select to_date('2006-07-01','yyyy-mm-dd') + i - 1 from (select rownum as i from cols where rownum < 32);
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)凑合用吧
还可以再简单一些 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')
得到当前月份的所有日期 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')));
SQL> SQL> select to_date('2006-07-' || rownum, 'yyyy-mm-dd') 2 from dual 3 connect by rownum <= 31connect怎么用????
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)
from (select rownum as i from cols where rownum < 32);
where rownum <= substr(to_char(last_day(to_date('2006-07','yyyy-mm')),'yyyy-mm-dd'),9,2)凑合用吧
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')
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
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>
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')));
SQL> select to_date('2006-07-' || rownum, 'yyyy-mm-dd')
2 from dual
3 connect by rownum <= 31connect怎么用????
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)
SQL>
SQL> select to_date('2006-07-' || rownum, 'yyyy-mm-dd')
2 from dual
3 connect by rownum <= 31connect怎么用????
=========================
这是个递归.要是不明白可以看文档
我都不知道如何给大家分数了,增加一点吧。谢谢,大家!!!