我没有想法解决这个问题。我正在做一个家庭作业,我无法弄清楚如何检查是否返回 - duedate> 12小时
P.S。我添加了使用时间的偏好。
这是问题
创建一个名为trg_late_return的触发器,只要返回视频,它就会在DETAILRENTAL表中将正确的值写入DETAIL_DAYSLATE。更新DETAIL_RETURNDATE或DETAIL-DUEDATE属性时,触发器应作为BEFORE触发器执行。触发器应满足以下条件:
"中午之前"宽限期仅适用于第二天的退货。宽限期后的任何退货计算为延迟一整天。请考虑以下示例:
我目前的触发器看起来像这样
CREATE OR REPLACE TRIGGER TRG_LATE_RETURN
BEFORE UPDATE OF DETAIL_RETURNDATE,DETAIL_DUEDATE ON DETAILRENTAL
FOR EACH ROW
BEGIN
IF :NEW.DETAIL_RETURNDATE <> NULL THEN
IF :NEW.DETAIL_RETURNDATE - DETAILRENTAL.DETAIL_DUEDATE > TO_CHAR (sysdate +12/24, 'HH24:MI:SS') THEN
UPDATE DETAILRENTAL
SET DETAILRENTAL.DETAIL_DAYSLATE = DETAIL_RETURNDATE - DETAIL_DUEDATE;
ELSE
UPDATE DETAILRENTAL
SET DETAILRENTAL.DETAIL_DAYSLATE = 0;
END IF;
END IF;
END;
顺便说一句,这不起作用。我不知道如何检查时间。