如何将日期限制为只允许用户输入Oracle SQL中星期几的日期

问题描述 投票:0回答:1

我已经被这个问题困扰了几天,我一直在通过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'));

任何帮助将不胜感激,谢谢。

sql database oracle constraints oracle-apex
1个回答
0
投票

这是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'))
© www.soinside.com 2019 - 2024. All rights reserved.