Postgresql检查约束:自检查之日起5年内复检

Postgresql check constraint: reinspection within 5 years from inspection date

嗨,我是 SQL 的新手,所以请多多包涵。

我正在尝试在日期字段上设置字段约束,限制用户输入的日期在该日期未来五年内,输入到另一个字段。

我试过:

ALTER TABLE inspection
ADD CONSTRAINT check_reinspection_date CHECK(dateforreinspection = dateofinspection + interval '5 year')

但是,这限制了用户只能输入恰好在检查日期后五年的复检日期。我想限制该字段,以便它允许在检查日期的前五年内(但不在外)的任何日期(例如第 1 天到第 5 年) -但是我似乎找不到任何关于如何做到这一点的信息,因此非常感谢您的帮助。

根据你的描述,我认为约束应该是这样的:

CHECK (age(dateforreinspection, dateofinspection)
       BETWEEN INTERVAL '1 day' AND INTERVAL '5 years')