请教一个月份查询的问题

xiaofeng3385 2009-01-21 01:59:54
请问下怎样查询出指定两个月份间的所有月份,
例如 给定 2008年3月到2008年8月,
我想得到这样一列,请问用一条查询sql写出来,

月份
3
4
5
6
7
8

然后想与一个数据表做全关联,不管3到8月有没有数据都作为一行查询出来,
...全文
133 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sparadise1003 2009-01-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 oracledbalgtu 的回复:]
SQL codeSELECT TO_NUMBER(TO_CHAR(TO_DATE('2008-03', 'yyyy-mm'), 'MM')) + ROWNUM - 1 MONTH
FROM DUAL
CONNECT BY ROWNUM <=
MONTHS_BETWEEN(TO_DATE('2008-08', 'yyyy-mm'),
TO_DATE('2008-03', 'yyyy-mm')) + 1

输出:
MONTH
3
4
5
6
7
8



[/Quote]
顶!
白发程序猿 2009-01-21
  • 打赏
  • 举报
回复
楼主怎么发到两个地方了
分太多就给点我吧
呵呵
oracledbalgtu 2009-01-21
  • 打赏
  • 举报
回复
SELECT TO_NUMBER(TO_CHAR(TO_DATE('2008-03', 'yyyy-mm'), 'MM')) + ROWNUM - 1 MONTH
FROM DUAL
CONNECT BY ROWNUM <=
MONTHS_BETWEEN(TO_DATE('2008-08', 'yyyy-mm'),
TO_DATE('2008-03', 'yyyy-mm')) + 1

输出:
MONTH
3
4
5
6
7
8


[Quote=引用楼主 xiaofeng3385 的帖子:]
请问下怎样查询出指定两个月份间的所有月份,
例如 给定 2008年3月到2008年8月,
我想得到这样一列,请问用一条查询sql写出来,

月份
3
4
5
6
7
8

然后想与一个数据表做全关联,不管3到8月有没有数据都作为一行查询出来,
[/Quote]
ACMAIN_CHM 2009-01-21
  • 打赏
  • 举报
回复
select 1 as m from dual
union all
select 2 from dual
union all
select 3 from dual
union all
select 4 from dual
union all
select 5 from dual
union all
select 6 from dual
union all
select 7 from dual
union all
select 8 from dual
union all
select 9 from dual
union all
select 10 from dual
union all
select 11 from dual
union all
select 12 from dual;
irrational 2009-01-21
  • 打赏
  • 举报
回复

select extract(month from mo) from (select rownum ,add_months(to_date(20080301,'YYYYMMdd'),rownum)mo from dual connect by rownum<10);

我也是最经刚学oracle,希望能对你有帮助!
阿三 2009-01-21
  • 打赏
  • 举报
回复
select to_char(add_months(to_date('2008-03-01','yyyy-mm-dd'),rownum),'yyyy-mm') as ymonth
from dual
connect by rownum<=months_between(to_date('2008-08-01','yyyy-mm-dd'),to_date('2008-03-01','yyyy-mm-dd'))
sparadise1003 2009-01-21
  • 打赏
  • 举报
回复
非得用sql实现吗
watson110 2009-01-21
  • 打赏
  • 举报
回复
要看一下你的oracle版本了,如果是10g的用以上sql就是正确的,如果是9i的则应该写成:
SELECT   TO_NUMBER (TO_CHAR (TO_DATE ('2008-03', 'yyyy-mm'), 'MM'))
+ ROWNUM
- 1 "Month"
FROM all_objects
WHERE ROWNUM <=
MONTHS_BETWEEN (TO_DATE ('2008-08', 'yyyy-mm'),
TO_DATE ('2008-03', 'yyyy-mm')
)
+ 1

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧