我已经被这个问题困扰了几天,我一直在通过Google / Stack Overflow找到许多不同的问题,但我一直无法解决。
我需要创建一个允许用户输入约会日期的表,其中一个限制是输入的日期只能是星期一或星期五。
这是我的一些尝试,有些可以使我创建表,但是在涉及输入数据时,它说无效的月份,无效的数据类型或许多其他错误。 (我还从下面的代码中删除了其他列,只是因为它们与问题无关)。
CREATE TABLE t_appointments
(appointment_id NUMBER(10,0) CONSTRAINT appointments_appoint_id_pk PRIMARY KEY,
appoint_date DATE CONSTRAINT appointments_app_date_nn NOT NULL
CONSTRAINT appointments_app_date_ck CHECK (to_char(appoint_date,'Day') IN ('Monday','Friday'));
我也尝试过
CREATE TABLE t_appointments
(appointment_id NUMBER(10,0) CONSTRAINT appointments_appoint_id_pk PRIMARY KEY,
appoint_date DATE CONSTRAINT appointments_app_date_nn NOT NULL
CONSTRAINT appointments_app_date_ck CHECK (to_char(to_date(appoint_date,'DD-MM-YYYY'),'Day') IN ('Monday','Friday'));
任何帮助将不胜感激,谢谢。
这是Oracle中的问题:
日期名称,用空格填充以显示用于该元素的日期语言中日期最宽的名称的宽度。
所以,尝试这个:
CONSTRAINT appointments_app_date_ck CHECK (to_char(appoint_date, 'Day') IN ('Monday ', 'Friday '))
或者,您可以做:
CONSTRAINT appointments_app_date_ck CHECK (to_char(appoint_date, 'D') IN ('2', '6'))