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