大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你不是写出来了么?
专注于为中小企业提供成都网站建设、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业建邺免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
to_date( to_char(sysdate,'YYYY-MM')|| '-01','YYYY-MM-DD')取得月初
add_months(to_date( to_char(sysdate,'YYYY-MM')|| '-01','YYYY-MM-DD') ,1) 取得下月初
具体 where 子句如下
oper_date = to_date( to_char(sysdate,'YYYY-MM')|| '-01','YYYY-MM-DD')
and oper_date add_months(to_date( to_char(sysdate,'YYYY-MM')|| '-01','YYYY-MM-DD') ,1)
要设置两个job,interval分别是TRUNC(LAST_DAY(SYSDATE))+1/24(每月最后一天的1点)和'NEXT_DAY(TRUNC(SYSDATE ), ''SATURDAY'' ) + 1/24(每周6的1点)执行
不过要避免月末最后一天是周六的情况
begin
sys.dbms_job.submit(job = :job,
what = 'sp_proc;',
interval = 'TRUNC(LAST_DAY(SYSDATE))+1/24');
commit;
end;
select trunc(add_months(sysdate,-1),'mm') first_day,last_day(add_months(sysdate,-1)) last_day from dual;
你的查询应该这样写:
select * from tabname where t between to_date('20130901','yyyymmdd') and to_date('20130930','yyyymmdd');
不建议在查询条件中写入变量,如
select * from tabname where t between trunc(add_months(sysdate,-1),'mm') and last_day(add_months(sysdate,-1));
这其中sysdate是个变化的量,不建议使用。
Select last_day(add_months(sysdate,-1)) from dual;得到上月最后一天
add_months(sysdate,-1) from dual;得到距当前时间一个月的时间(-1是上一个月,1是下一个月)
Select last_day(sysdate) from dual;得到当前月的最后一天
不知道你是否明白了?