Select last_day(add_months(sysdate,-1)) from dual;得到上月最后一天
成都创新互联-专业网站定制、快速模板网站建设、高性价比广汉网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式广汉网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖广汉地区。费用合理售后完善,十余年实体公司更值得信赖。
add_months(sysdate,-1) from dual;得到距当前时间一个月的时间(-1是上一个月,1是下一个月)
Select last_day(sysdate) from dual;得到当前月的最后一天
不知道你是否明白了?
select * from table
where column between add_months(sysdate, -1) and sysdate;
table 需要替换成 你要查询table name。
column 就是 下条件的栏位。。
这个sql 已经经过test了。
1、创建测试表,
create table test_date_2(id int, v_date date);
2、插入测试数据
insert into test_date_2 values(1,sysdate);
insert into test_date_2 values(2,sysdate-20);
insert into test_date_2 values(3,sysdate-30);
insert into test_date_2 values(4,sysdate-40);
commit;
3、查询表中全量数据,select t.* from test_date_2 t;
4、编写语句,查询当月份的上一个月;
select t.*, add_months(v_date,-1) v_date2 from test_date_2 t;
SELECT TO_CHAR(ADD_MONTHS(SYSDATE, -1), 'MM') AS 上月,
TO_CHAR(SYSDATE, 'MM') AS 本月,
TO_CHAR(ADD_MONTHS(SYSDATE, 1), 'MM') AS 下月
FROM DUAL