CREATE OR REPLACE VIEW INTERVAL_MONTH_SELECT AS
select to_char(tt.d, 'yyyy-MM') interval_month,
to_char(tt.d, 'MM') month,
to_char(last_day(tt.d), 'dd') day,
tt.d interval_date,
last_day(tt.d) last_day
from (select ADD_MONTHS(zz.s, rownum - 1) d
from (select to_date('2001-01-01', 'yyyy-MM-dd') s,
to_date('2050-01-01', 'yyyy-MM-dd') e
from dual) zz,
(select * from user_objects)
where rownum <= MONTHS_BETWEEN(zz.e, zz.s) + 1) tt
日期 视图
oracle 中某月的第一天,最后一天,前一个月的第一天,最后一天,类似方法
在Oracle 数据库中取某个月份的第一天和最后一天的方法
取当前日期前一个月的第一天的日期
SELECT last_day(add_months(SYSDATE, -2)) + 1 FROM dual;
取当前日期前一个月的最后一天的日期
SELECT last_day(add_months(SYSDATE, -1)) FROM dual;
SELECT last_day(add_months(SYSDATE, -2)) + 1 FROM dual;
取当前日期前一个月的最后一天的日期
SELECT last_day(add_months(SYSDATE, -1)) FROM dual;
本月的第一天和最后一天
select to_char(trunc(sysdate,'MONTH'),'yyyy-mm-dd') First_DayOfMonth
,to_char(last_day(trunc(sysdate,'MONTH')),'yyyy-mm-dd') Last_DayOfMonth
from dual