SQL开发人员触发器

SQL开发人员触发器,sql,oracle-sqldeveloper,Sql,Oracle Sqldeveloper,我已经没有办法解决这个问题了。我正在做家庭作业,我不知道如何检查returndate-duedate>12小时 另外,我增加了使用时间的偏好 问题就在这里 创建一个名为trg_late_return的触发器,该触发器将在返回视频时将正确的值写入DETAILRENTAL表中的DETAIL_DAYSLATE。当更新DETAIL_RETURNDATE或DETAIL-DUEDATE属性时,触发器应作为BEFORE触发器执行。触发器应满足以下条件: 如果返回日期为空,则延迟天数也应为空。 如果返回日期不为

我已经没有办法解决这个问题了。我正在做家庭作业,我不知道如何检查returndate-duedate>12小时

另外,我增加了使用时间的偏好

问题就在这里

创建一个名为trg_late_return的触发器,该触发器将在返回视频时将正确的值写入DETAILRENTAL表中的DETAIL_DAYSLATE。当更新DETAIL_RETURNDATE或DETAIL-DUEDATE属性时,触发器应作为BEFORE触发器执行。触发器应满足以下条件:

如果返回日期为空,则延迟天数也应为空。 如果返回日期不为空,则延迟天数应确定视频是否延迟返回。 如果返回日期为返回后的中午或更早,则视频不被视为延迟,延迟的天数应为零。 如果返回日期超过到期日后一天的中午,则视为视频延迟,因此必须计算并存储延迟天数。 中午前宽限期仅适用于第二天的申报表。宽限期后的任何申报均视为延迟一整天。考虑下面的例子:

示例1:14年1月1日到期,在14年1月2日中午前返回,但未迟到。 例2:2014年1月1日到期的款项在2014年1月2日中午后返回,然后延迟1天。 例3:14年1月1日到期,在14年1月4日任何时间返回,然后延迟3天 我现在的触发器是这样的

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;

顺便说一下,这不管用。我不知道如何检查时间。

我不得不更新问题帖子,因为它凌乱且不可读。我想我需要这样做。至_CHAR:NEW.DETAIL_返回日期'HH24:MI:SS'