效率差的方法:

select to_char(add_months(to_date('201106','yyyymm'),-rownum+1),'yymm')

from tb_dmcs_daq where rownum<=6

union all

select to_char(add_months(to_date('201106','yyyymm'),rownum),'yymm')

from tb_dmcs_daq where rownum<=6

进一步优化

select substr('201106',0,4) || lpad(level,2,0) from dual

connect by level<13

推荐下面的格式:

select to_char(to_date('201106','yyyymm'),'yyyy') || lpad(level,2,0)

from dual

connect by level<13

另外一种方式去本年的12个月

select to_char(add_months(to_date((substr('201106',0,4)-1) || '12','yyyymm'),rownum),'yyyymm') dates from dual connect by rownum<13

计算下一年的12个月

select to_char(add_months(to_date('201012','yyyymm'),rownum),'yyyymm') dates from dual connect by rownum<13

计算本月有多少天:

select to_char(last_day(to_date('201206','yyyymm')),'dd') from dual

计算一年有多少天

select to_date('20030101','yyyymmdd')-to_date('20020101','yyyymmdd') from dual

计算这个月的月底是多少号

select last_day(sysdate) from dual

取下个星期的开始

select NEXT_DAY(sysdate,1) from dual

在该日期中添加半小时

select to_char(sysdate, 'yyyy-mm-dd hh:mi:ss') now_date, to_char(sysdate+(30/24/60), 'yyyy-mm-dd hh:mi:ss') new_date

from dual;

在该日期中减去半小时

select to_char(sysdate, 'yyyy-mm-dd hh:mi:ss') now_date,

to_char(sysdate+(-30/24/60),'yyyy-mm-dd hh:mi:ss') new_date

from dual;

在该日期中加一个月

select add_months(sysdate, 1) from dual;

在该日期中减一个月

select add_months(sysdate, -1) from dual;

求两个日期相差的月数

select months_between(sysdate,to_date('2012-01-01 01:00:00', 'yyyy-mm-dd hh:mi:ss')) result from dual;

为当前日期加上两年

select add_months(sysdate, 2*12) two_years_later from dual;

求两个日期相差几年

select months_between(sysdate,

to_date('2011-06-30', 'yyyy-mm-dd')) / 12 years_between

from dual;

求两个月后的最后一天

select last_day(add_months(sysdate,2)) last_day

from dual;

求下一个月的第一天

select last_day(sysdate)+1 fisrt_day from dual;

取下周几是几号

select next_day(sysdate, '星期六')  from dual;

取下周三是几号

select next_day(sysdate,4) from dual;

将一年分2个阶段,并显示每个月的1号

select dates,

to_char(dates,'yyyy') group1,

decode(to_char(dates,'mm'),'04',1,'05',1,'06',1,'07',1,'08',1,'09',1, 2) group2

from (select add_months(to_date('200012','yyyymm'),rownum) dates from dual connect by rownum<25 )

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐