1、动态生成一年中的日期
select to_date('2007-01-01','yyyy-mm-dd')+(rownum-1) 日期 from dual
Connect By rownum<=to_char(to_date('20071231', 'yyyymmdd'), 'ddd');
注意,上面的语句在10g以上版本可以全部显示,对于92只能显示100条。不过可以利用一个记录数超过366的表来实现。
select to_date('2007-01-01','yyyy-mm-dd')+(rownum-1) 日期
from user_objects
where rownum<=to_char(to_date('20071231', 'yyyymmdd'), 'ddd');
2、动态生成一年中季度与月份的对应
Select to_char(日期,'q') 季度,
to_char(日期,'yyyy-mm') 年月 from(
select add_months(to_date('2001-01','yyyy-mm'),(rownum-1)) 日期 from dual
where rownum<=12
);
3、动态生成每月月末日期、年月
select last_day(add_months(to_date('2007-01','yyyy-mm'),(rownum-1))) 月末日期 from dual Connect By rownum<=12;select to_char(add_months(to_date('2007-01','yyyy-mm'),(rownum-1)),'yyyy-mm') 年月 from dual Connect By rownum<=12;
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7659204/viewspace-897072/ ,如需转载,请注明出处,否则将追究法律责任。