Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将日期约束限制为仅允许用户在Oracle SQL中输入一周中某一天的日期_Sql_Database_Oracle_Constraints_Oracle Apex - Fatal编程技术网

如何将日期约束限制为仅允许用户在Oracle SQL中输入一周中某一天的日期

如何将日期约束限制为仅允许用户在Oracle SQL中输入一周中某一天的日期,sql,database,oracle,constraints,oracle-apex,Sql,Database,Oracle,Constraints,Oracle Apex,我已经被这个问题困扰了几天了,我通过google/stack overflow发现了许多不同的问题,但我一直无法解决 我需要创建一个允许用户输入约会日期的表,其中一个限制是输入的日期只能是星期一或星期五 下面是我的几次尝试,其中一些尝试的工作原理是允许我创建表,但当涉及到输入数据时,它会显示无效月份、无效数据类型或大量其他错误。(我还从下面的代码中删除了其他列,因为它们与问题无关) 我也试过了 CREATE TABLE t_appointments (appointment_id NUMBER(

我已经被这个问题困扰了几天了,我通过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(to_date(appoint_date,'DD-MM-YYYY'),'Day') IN ('Monday','Friday'));
非常感谢您的帮助。

这是以下内容中的问题:

日期名称,用空格填充以显示此元素使用的日期语言中最宽日期名称的宽度

那么,试试这个:

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'))

你使用MySQL还是Oracle?我在使用Oracle。你需要考虑Oracle的NLS参数吗?谢谢,我再次尝试了这个代码,它工作了,我是一个白痴,以错误的格式输入日期。或者<代码> toyChar(约会日期,'fMay')< /C> >删除尾随空格。此外,格式模型
'D'
取决于
NLS_TERRITORY
设置,因此周一可能是1或2。最好使用
指定日期in(trunc(指定日期,'iw')、trunc(指定日期,'iw')+4)
,因为ISO每周开始时间定义为周一。
CONSTRAINT appointments_app_date_ck CHECK (to_char(appoint_date, 'D') IN ('2', '6'))