现在的位置: 首页 > 综合 > 正文

oracle 递归:一个月内的每一天

2013年09月30日 ⁄ 综合 ⁄ 共 614字 ⁄ 字号 评论关闭

1. 201212月每一天

SELECT TO_DATE('20121201','YYYYMMDD')+LEVEL-1 calendardate

FROM DUAL

CONNECT BY LEVEL<=该月总天数

LEVEL : from 1 to 本月总天数

2.求某个月总天数

select to_char(last_day(to_date('201302','YYYYMM')),'dd') from dual;
把月份转化成date,求最后一天 的Day

3.201212 月的总天数:下个月第一天减去这个月的第一天,就是这个月的天数

select trunc(add_months(to_date('201212','YYYYMM'),1),'mon') - trunc(to_date('201212','YYYYMM'),'mon') from dual

4.oracle add_months函数:

oracle add_months(time,months)函数可以得到某一时间之前或之后n个月的时间

  1. 如 select add_months(sysdate,-6) from dual; 

该查询的结果是当前时间半年前的时间

  1. select add_months(sysdate,6) from dual; 

5.求当年天数的sql语句

SELECT ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), 12) - TRUNC(SYSDATE, 'YYYY') days FROM DUAL

抱歉!评论已关闭.