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;
--下一个月