oracle当前日期的前3个月怎么写

oracle当前日期的前3个月怎么写,第1张

你是按月输入,还是按天输入?就是说是每天都在输入数据,保留三个月,还是在月底输入本月或者月初输入上月,然后保留三个月。其实方法都一样,无非就是利用时间来判断。如果你的时间是日期格式的,那么就用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存储过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9608800.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存