在 Oracle SQL 中,allotment_date当前>日期之间的天数数为 91 天的条件



我有三个表,其中一个表有allotment_date。在这个表中,我们必须提出一个条件,即allotment_date到现在的日期之间的天数不会>91天。请帮忙

如果你想确保分配日期不能超过过去的91天(有点猜测 - 这是你要问的吗?(,那么你需要一个触发器:

create table demo
( allotment_date date );
create or replace trigger demo_allotment_date_90_day_trg
before insert or update of allotment_date
on demo
for each row
begin
if :new.allotment_date < sysdate -91 then
raise_application_error(-20000, 'Allotment date must be within last 91 days');
end if;
end;

这是允许的:

insert into demo(allotment_date) values (sysdate);

这将失败:

insert into demo(allotment_date) values (date '1900-12-25');
ORA-20000: Allotment date must be within last 91 days
ORA-06512: at "WILLIAM.DEMO_ALLOTMENT_DATE_90_DAY_TRG", line 3
ORA-04088: error during execution of trigger 'WILLIAM.DEMO_ALLOTMENT_DATE_90_DAY_TRG'

您可以使用下面的查询示例

选择 TO_DATE('2000-01-02', 'YYYY-MM-DD'( - TO_DATE
('2000-01-01', 'YYYY-MM-DD'( 作为 DateDiff 从双

最新更新