oracle本月、上月、去年

select trunc(sysdate, 'month') 本月第一天,
       trunc(last_day(sysdate)) 本月最后一天,
       trunc(add_months(sysdate, -1), 'month') 上月第一天,
       trunc(last_day(add_months(sysdate, -1))) 上月最后一天,
       trunc(add_months(sysdate, -12), 'month') 去年本月第一天,
       trunc(last_day(add_months(sysdate, -12))) 去年本月最后一天
  from dual
 
add_month(日期,数字) 用日期里面的月份加数字得到新的日期,如果数字是负的就可以得到过去的月份日期
last_day(日期)获得该月最后一天
 
这个要用到add_months()函数 参数 负数 代表 往前  正数 代表 往后。
select to_char(add_months(trunc(sysdate),-1),'yyyymm') from dual;
--上一个月
select to_char(add_months(trunc(sysdate),1),'yyyymm') from dual;
--下一个月
原文地址:https://www.cnblogs.com/dirgo/p/6737008.html