Sql 确保输入的日期至少比另一个日期长3年

Sql 确保输入的日期至少比另一个日期长3年,sql,oracle,check-constraints,Sql,Oracle,Check Constraints,我正试图作出限制,以确保完成日期至少比开始日期长3年 我环顾四周,但真的不知道从哪里开始 我是否需要使用dateadd函数 谢谢您可以通过多种方式完成,但由于您询问了检查约束,类似这样的方法应该可以: CREATE TABLE myTable ( id numeric(4), startdate date, finishdate date, CONSTRAINT check_date CHECK (finishdate >= add_months( startdate

我正试图作出限制,以确保
完成日期
至少比
开始日期
长3年

我环顾四周,但真的不知道从哪里开始

我是否需要使用
dateadd
函数


谢谢

您可以通过多种方式完成,但由于您询问了检查约束,类似这样的方法应该可以:

CREATE TABLE myTable
(
  id numeric(4),
  startdate date,
  finishdate date,
  CONSTRAINT check_date
  CHECK (finishdate >= add_months( startdate , 36 ))
);

您可以通过多种方式执行此操作,但由于您询问了检查约束,类似这样的操作应该可以:

CREATE TABLE myTable
(
  id numeric(4),
  startdate date,
  finishdate date,
  CONSTRAINT check_date
  CHECK (finishdate >= add_months( startdate , 36 ))
);

Oracle没有
dateadd
。您可能正在寻找
添加月份
。既然您已经用检查约束对其进行了标记,您似乎知道从何处开始,那么您是否尝试添加约束?这可能有助于显示您现有的表结构和迄今为止的最佳尝试,以及错误原因。Oracle没有
dateadd
。您可能正在寻找
添加月份
。既然您已经用检查约束对其进行了标记,您似乎知道从何处开始,那么您是否尝试添加约束?这可能有助于显示您现有的表结构和您迄今为止的最佳尝试,以及错误的原因。您好,谢谢您,我实际上尝试了一些非常类似的东西,但在我看来它的语法是错误的。您好,谢谢您,我实际上尝试了一些非常类似的东西,但在我看来它的语法是错误的。