先说明下,最近在补下Oracle,去http://www.itpub.net/逛了下,做了点笔记,现在我把我做的笔记分享下,内容很基础,希望对大家有用,本文不算原创,目的只是分享知识。分享快乐,谢谢。
下面的SQL在Oracle 10.2.0.1上面测试通过。
(一)已知2个日期,希望显示这2个日期的每一天(包含起始日期)
SELECT TO_DATE('20130801', 'yyyymmdd') + LEVEL - 1 FROM DUAL CONNECT BY LEVEL <= FLOOR(TO_DATE('20130811', 'yyyymmdd') - TO_DATE('20130801', 'yyyymmdd')) + 1;
如果希望参数自己输入,可以这样。
SELECT TO_DATE('&1', 'yyyymmdd') + LEVEL - 1 FROM DUAL CONNECT BY LEVEL <= FLOOR(TO_DATE('&2', 'yyyymmdd') - TO_DATE('&1', 'yyyymmdd')) + 1;
下面的可以自己替换,我就不替换了。
(二)给定起始日期,和一个数字n,显示n个yyyy-mm
select to_char(add_months(date '2013-1-1', level - 1), 'yyyy-mm') months from dual connect by level <= 12;
也可以这样。
select &year || '-' || lpad(rownum, 2, '0') yyyymm from dual connect by rownum <= 12
(三)给定起始日期,和一个数字n,显示n个yyyy-mm-dd
select to_char(add_months(date '2013-1-29', level - 1), 'yyyy-mm-dd') months from dual connect by level <= 12;
(四)给定年份,显示一年的日期
SELECT trunc(to_date('&1', 'yyyy'), 'year') + LEVEL - 1 FROM dual CONNECT BY level <= add_months(last_day(trunc(to_date('&1', 'yyyy'), 'year')), 11) - trunc(to_date('&1', 'yyyy'), 'year') + 1;
(五)显示的时候要显示星期几
select to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1, 'yyyy-mm-dd') dt, to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1, 'day') day, to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1, 'iw') weeks from dual CONNECT BY level <= add_months(last_day(trunc(to_date('2014-01-01', 'yyyy-mm-dd'), 'year')), 11) - trunc(to_date('2014-01-01', 'yyyy-mm-dd'), 'year') + 1;
(六)显示的时候不显示周六周末
select to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1, 'yyyy-mm-dd') dt, to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1, 'day') day, to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1, 'iw') weeks from dual where to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1,'d') not in (7, 1) CONNECT BY level <= add_months(last_day(trunc(to_date('2014-01-01', 'yyyy-mm-dd'), 'year')), 11) - trunc(to_date('2014-01-01', 'yyyy-mm-dd'), 'year') + 1;
(七)显示的时候只显示周六周末
select to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1, 'yyyy-mm-dd') dt, to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1, 'day') day, to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1, 'iw') weeks from dual where to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1,'d') in (7, 1) CONNECT BY level <= add_months(last_day(trunc(to_date('2014-01-01', 'yyyy-mm-dd'), 'year')), 11) - trunc(to_date('2014-01-01', 'yyyy-mm-dd'), 'year') + 1;
(八)改主意了,想自己限定开始结束日期,还是要显示星期几
select to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1, 'yyyy-mm-dd') dt, to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1, 'day') day, to_char(to_date('2014-01-01', 'yyyy-mm-dd') + level - 1, 'iw') weeks from dual CONNECT BY level <= FLOOR(to_date('2014-03-01', 'yyyy-mm-dd') -to_date('2014-01-01', 'yyyy-mm-dd')) + 1;
笔记记录结束,希望对大家有用,谢谢。
全文完。
相关推荐
sqlPpt借花献佛之作,介绍的挺详细,相信对于学习有很大帮助
2015高考语文满分作文36计之借花献佛:巧用诗词增文采素材
比较全的Oracle函数及其简单说明,作为日常开发的一个参考!也是从网上下载的,借花献佛!
借花献佛的成语接龙.doc
很不错的信息系统工程师考试资料 借花献佛了
什么嘛,要点积分还要做这么多事,真讨厌,真讨厌,讨厌死了。。。。讨厌得很。哼!
自治成功的stk500 电路图 源程序 HEX
一个关于开关电源的设计过程范例,主要是针对反激式开关电源的设计,对于设计人员的开发具有相当的参考价值
我只是借花献佛。 Flex教程系列之(一) AS3语法——编程基础 http://download.csdn.net/source/1161756 Flex教程系列之(二) AS3语法——流程控制语句 http://download.csdn.net/source/1161804 Flex教程系列之...
我只是借花献佛。 Flex教程系列之(一) AS3语法——编程基础 http://download.csdn.net/source/1161756 Flex教程系列之(二) AS3语法——流程控制语句 http://download.csdn.net/source/1161804 Flex教程系列之...
使用单片机发送彩信的代码,借花献佛。错误之处望指正
借花献佛了 SUN考试详细资料
感谢strongbox的辛勤劳动,连续发了6期神经网络入门,使我受益匪浅,同时我也产生一个想法,如果把这6期做成一个pdf文档,就可以方便更多的人。正好论坛里也有很多这样的呼声,所以本人借花献佛,用了一个小时(跟...
codematic2.0 给大家共享的哦 借花献佛哦
android手电源码 借花献佛吧 控制闪光灯的源码
不使用API读写INI文件,借花献佛。。。
C#屏幕雪花,别人的资源,借花献佛。。。
参考别人的一个利用matlab实现SVM算法,借花献佛
09年系统集成工程师试题,借花献佛!大家共享!
我找了很久才找到这方面的...借花献佛!版权属原作者! * @文件名 : main.c * @作者 : strongerHuang * @库版本 : V2.2.0 * @文件版本 : V1.0.0 * @日期 : 2017年04月10日 * @摘要 : 主函数 - Demo软件工程