当输入的日期高于或超过设置的日期时,它会抛出一个错误。但是当日期完全相同时,它仍然会抛出错误,这是不应该的。
这是我的代码
CREATE OR REPLACE TRIGGER hire_date_check
before insert or update on Staff
FOR EACH ROW
DECLARE
minimum_date date := sysdate;
BEGIN
IF :NEW.Hire_date = minimum_date
END IF;
if :NEW.Hire_Date < minimum_date then
raise_application_error(-20000, 'cant be below Minimum date' || minimum_date);
end if;
if :NEW.Hire_Date > minimum_date then
raise_application_error(-20001, 'cant be Above Minimum date' || minimum_date);
end if;
END;
/
COMMIT
/
1条答案
按热度按时间hmtdttj41#
Sysdate同时包含date和time,这意味着在插入
staff
表时,您应该完全匹配该值,否则两个IF
都将失败。假设人们是在一个 * 日期被雇用的(e。今天是28。2023年4月),不指定时间分量(e.我今天28岁被录用了。04.2023 at 11:32:28),然后truncatesysdate: