如何将DATE的日期和月份限制为两个不同日期之一?

时间:2017-01-13 21:25:06

标签: oracle date constraints ddl

如何检查输入日期是否是两个选项之一。

我正在尝试创建一个具有注册日期('DD.MM.YYYY')的表格,并且注册应该只能在4月1日或10月1日才能进行。 我一直在尝试不同的方法,但无法使其发挥作用。

CREATE TABLE student
(
  student_id CHAR(10),
  enrollment_date DATE CHECK (enrollment_date = TO_DATE('01.04','DD.MM') OR enrollment_date = TO_DATE('01.10','DD.MM'))
);

CREATE TABLE student (
  student_id CHAR(10),
  enrollment_date DATE CHECK (enrollment_date = TO_DATE('01.04','DD.MM') OR enrollment_date = TO_DATE('01.10','DD.MM'))
);

在这两种情况下我都得到了:

  

ORA-02436:CHECK中错误指定了日期或系统变量   约束02436. 00000 - “错误地指定了日期或系统变量   在CHECK约束中“*原因:尝试使用日期   常量或系统变量,例如USER,在检查约束中   未在CREATE TABLE或ALTER TABLE中完全指定   声明。例如,指定的日期没有世纪。   *操作:完全指定日期常量或系统变量。设置事件10149允许约束,例如“a1> '10 -MAY-96'”,   允许在版本8之前创建的错误。

0 个答案:

没有答案