求一个sql语句,返回两个日期参数之间的连续年月 如题,请各位大神帮帮忙! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 求两个日期之前的相隔月份。select months_between(date1,date2) from dual; create table t1 (b_date date,e_date date);insert into t1 values (date'2011-06-01',date'2011-12-01');insert into t1 values (date'2012-03-01',date'2012-06-01');commit;select distinct to_char(add_months(b_date,level-1),'yyyy-mm') dfrom t1connect by level< trunc(months_between(e_date,b_date),0)+2order by d D-------------------------1 2011-062 2011-073 2011-084 2011-095 2011-106 2011-117 2011-128 2012-039 2012-0410 2012-0511 2012-06 --取指定时间段内每一天SELECT to_date('2011-10-10' , 'YYYY-MM-DD') + ROWNUM - 1 service_date FROM dual CONNECT BY ROWNUM <= (to_date('2011-10-28' , 'YYYY-MM-DD') - to_date('2011-10-10' , 'YYYY-MM-DD') + 1); SERVICE_DATE ------------------------- 2011-10-10 00:00:00 2011-10-11 00:00:00 2011-10-12 00:00:00 2011-10-13 00:00:00 2011-10-14 00:00:00 2011-10-15 00:00:00 2011-10-16 00:00:00 2011-10-17 00:00:00 2011-10-18 00:00:00 2011-10-19 00:00:00 2011-10-20 00:00:00 2011-10-21 00:00:00 2011-10-22 00:00:00 2011-10-23 00:00:00 2011-10-24 00:00:00 2011-10-25 00:00:00 2011-10-26 00:00:00 2011-10-27 00:00:00 2011-10-28 00:00:00 改个函数 trunc → roundselect distinct to_char(add_months(b_date,level-1),'yyyy-mm') dfrom t1connect by level< round(months_between(e_date,b_date),0)+2order by d 如何查看数据库对象所占用的数据库空间? 得到表空间上有几个用户 求教:用oracmd链接oracle的问题 分組查詢后排名次 oracle在查询语句中能不能判断一个字符串字段是否能转换为数字? 帮我看一下这个触发器的代码的意思! 各位大哥、大姐们!求SQL语句一条 求助ora-01033 的问题 送分!! 一个关于数据类型的难题! 新手求一根据身份证得到性别及年龄的函数 当count(字段)为空时怎么用0代替????
求两个日期之前的相隔月份。
select months_between(date1,date2) from dual;
create table t1 (b_date date,e_date date);insert into t1 values (date'2011-06-01',date'2011-12-01');
insert into t1 values (date'2012-03-01',date'2012-06-01');
commit;select distinct to_char(add_months(b_date,level-1),'yyyy-mm') d
from t1
connect by level< trunc(months_between(e_date,b_date),0)+2
order by d
D
-------------------------
1 2011-06
2 2011-07
3 2011-08
4 2011-09
5 2011-10
6 2011-11
7 2011-12
8 2012-03
9 2012-04
10 2012-05
11 2012-06
SELECT to_date('2011-10-10' , 'YYYY-MM-DD') + ROWNUM - 1 service_date FROM dual
CONNECT BY ROWNUM <= (to_date('2011-10-28' , 'YYYY-MM-DD') - to_date('2011-10-10' , 'YYYY-MM-DD') + 1);
SERVICE_DATE
-------------------------
2011-10-10 00:00:00
2011-10-11 00:00:00
2011-10-12 00:00:00
2011-10-13 00:00:00
2011-10-14 00:00:00
2011-10-15 00:00:00
2011-10-16 00:00:00
2011-10-17 00:00:00
2011-10-18 00:00:00
2011-10-19 00:00:00
2011-10-20 00:00:00
2011-10-21 00:00:00
2011-10-22 00:00:00
2011-10-23 00:00:00
2011-10-24 00:00:00
2011-10-25 00:00:00
2011-10-26 00:00:00
2011-10-27 00:00:00
2011-10-28 00:00:00
select distinct to_char(add_months(b_date,level-1),'yyyy-mm') d
from t1
connect by level< round(months_between(e_date,b_date),0)+2
order by d