database - 创建此触发器时,我的时间语法有什么问题?
问题描述
这就是问题。创建一个名为 trg_late_return 的触发器,该触发器将在返回视频时将正确的值写入 DETAILRENTAL 表中的 DETAIL_DAYSLATE。当更新 DETAIL_RETURNDATE 或 DETAIL_DUEDATE 属性时,触发器应作为 BEFORE 触发器执行。触发器应满足以下条件:
如果返回日期为空,那么迟到的天数也应该为空。
如果返回日期不为空,则延迟天数应确定视频是否延迟返回。
如果返回日期是截止日期之后的中午或更早,则视频不被视为迟到,迟到的天数应为零 (0)。
如果返回日期超过了截止日期的次日中午,则视频被视为迟到,因此必须计算并存储迟到的天数。
到目前为止,这是我的代码。它给了我一个语法错误,特别是在我有“12:00:00”的地方。请帮我。
delimiter //
CREATE TRIGGER TRG_LATE_RETURN
BEFORE UPDATE ON DETAILRENTAL
FOR EACH ROW
BEGIN
IF NEW.DETAIL_RETURNDATE IS NULL THEN
SET NEW.DETAIL_DAYSLATE = 0;
END IF;
IF NEW.DETAIL_RETURNDATE IS NOT NULL THEN
IF NEW.DETAIL_RETURNDATE - OLD.DETAIL_DUEDATE > DATE_FORMAT(NEW.DETAIL_RETURNDATE, 'HH24:MI:SS') <= '12:00:00' THEN
SET NEW.DETAIL_DAYSLATE = DATEDIFF(OLD.DETAIL_DUEDATE, NEW.DETAIL_RETURNDATE)*-1;
ELSE
SET NEW.DETAIL_DAYSLATE = 0;
END IF;
END IF;
END;//
delimiter ;
解决方案
推荐阅读
- javascript - 在 chrome 控制台或 Firefox 控制台中使用我网站上的功能?
- gstreamer - 使用 gstreamer 创建的 MP4 文件无法在 Window Media Player 上播放
- expo - 如何在博览会中获得 SHA-1 证书?
- android - vlc-android:音频过滤器音频标准化(normvol)不起作用
- javascript - Angular 获取动态创建的 DOM 元素
- json - 从文件中获取 Json 数据
- javascript - 解构错误对象适用于 Chrome,但不适用于 Firefox。可以做什么?
- jquery - 如何重置间隔jquery
- chart.js - ChartJS 某些 xAxis 和 yAxis 线上的自定义文本S
- kubernetes - GKE 将 pv 迁移到同一 GCloud 项目中的新集群