你是按月输入,还是按天输入?就是说是每天都在输入数据,保留三个月,还是在月底输入本月或者月初输入上月,然后保留三个月。其实方法都一样,无非就是利用时间来判断。如果你的时间是日期格式的,那么就用add_month求出三个月前,如果你的日期是字符的比如20010101,那么就to_date再add_month然后利用delete删除就行了。如果是to_char不想用add_month那么就直接判断,那么就截取20010101中的月份的01,然后去比对,如果是01,那么就2001-1,月份10,如果是02,那么就2001-1,月份11,类推,不过04往后就比较简单了,直接减就可以了。
题主是否想询问“oracle怎样保留月底数据其他删除”?oracle是指数据,
1、首先将自己希望保留的这个月的数据导出到一个临时表中。
2、其次然后将2500万数据整个删除,接着然后将整个表删除。
3、最后将数据从临时表全部导回来即可。
--创建存储过程
create or replace procedure IsLastDay
(
flag out char
)
as
d1 date;
d2 date;
begin
if (to_char(sysdate, 'mmdd') = to_char(last_day(sysdate))) then
flag := 'T';
else
flag := 'F';
end if;
end;
--调用存储过程
declare
flag char;
begin
IslastDay(flag);
if (flag = 'T') then
dbms_outputput_line(sysdate || ' 是本月最后一天');
else
dbms_outputput_line(sysdate || ' 不是本月最后一天');
end if;
end;
日期不正确。oracleerp系统总账,在门户的设置菜单中选择启用,总账系统启用日期必须是月初,日期不正确会导致打不开,用户只需要重新 *** 作一遍将日期选对就可以了。oracleerp指组织用于管理日常业务活动的一套软件。
你描述的地方好几个错误。
要求编写SQL语句查询2006年8月1日~31日时间段内每日的MONTHTODAY累计FYP值。这个日期和你最后结果日期不一致。
COMPANY varchar2(2) 这个地方是2位,你后边存的是3位。
创建数据表,插入数据
create table b(COMPANY varchar2(3),
AGENCYID varchar2(10),
PRODUCTID varchar2(3),
WRCVDATE number(8),
FYP number(17,6));
insert into b values ('001','630001','01', 20130103,100);
insert into b values ('001','630001','01',20130105 ,300);
commit;
执行查询:
with t as(select to_char(t1rq,'yyyymmdd') rq,bCOMPANY,bAGENCYID,bPRODUCTID,0 FYP from
(select to_date('20130101','yyyymmdd') + rownum-1 rq from dual connect by rownum<=100) t1,b
where t1rq<=to_date('20130131','yyyymmdd')
group by to_char(t1rq,'yyyymmdd'),bCOMPANY,bAGENCYID,bPRODUCTID)
select t1COMPANY,t1AGENCYID,t1PRODUCTID,t1rq,nvl(t2FYP,0) FYP
from t t1 left join
(select tCOMPANY,tAGENCYID,tPRODUCTID,trq,sum(bFYP) FYP from
t,b
where trq(+)>=bWRCVDATE
and tCOMPANY=bCOMPANY
and tAGENCYID=bAGENCYID
and tPRODUCTID=bPRODUCTID
group by tCOMPANY,tAGENCYID,tPRODUCTID,trq) t2
on t1COMPANY=t2COMPANY
and t1AGENCYID=t2AGENCYID
and t1PRODUCTID=t2PRODUCTID
and t1rq=t2rq
order by t1rq
结果:
后边结果略,都是400
每个月月初这个用job 定时任务就行了啊!
自动更新user表中的tt列的数据这个条件用存储过程!
也就是定时任务+存储过程,来实现你这个需求正好。
为啥非得用触发器!
以上就是关于oracle当前日期的前3个月怎么写全部的内容,包括:oracle当前日期的前3个月怎么写、oracle保留月底数据其他删除、求:判断当天是否为当月最后一天 的 oracle存储过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)