检查日期是否在PLSQL中的另一个日期之前

时间:2014-01-03 15:52:54

标签: oracle date plsql triggers

我还在处理我的大学任务,在这里我必须在桌面上创建触发器

MARRIAGE(ID_marriage, Date_of_wedding, Date_of_divorce);

可用于 UPDATE语句,这样如果有人试图添加或编辑date_of_divorce,则会确保它是AFTER date_of_wedding。

以下是数据示例的示例:

ID_marriage  | Date_of_wedding  |  Date_of_divorce
1             39/04/12             39/04/12
2             71/04/12             null 

现在我的问题是如何在PL / SQL中比较这些日期?

提前致谢!

1 个答案:

答案 0 :(得分:4)

不需要触发器,检查约束将起作用:

alter table marriage
   add constraint check_divorce
   check (date_of_divorce is null or date_of_divorce > date_of_wedding);

对于触发器,您需要比较new.date_of_divorcenew.date_of_wedding的值 - 基本上与我在检查约束中使用的条件相同。如果date_of_divorce更大,则需要引发异常以中止插入或更新语句。

由于这是一个学校项目,我不会给你完整的代码,你应该自己找到正确的语法。

手册中的相关章节是: