2008-10-15 2 views

답변

5
SQL> ed 
Wrote file afiedt.buf 

    1 create table date_check (
    2 dt date check(to_number(to_char(dt, 'HH24')) between 9 and 16) 
    3*) 
SQL>/

Table created. 

SQL> ed 
Wrote file afiedt.buf 

    1* insert into date_check values(to_date('01/01/2008 08:30', 'DD/MM/YYYY HH2 
4:MI')) 
SQL>/
insert into date_check values(to_date('01/01/2008 08:30', 'DD/MM/YYYY HH24:MI' 
)) 
* 
ERROR at line 1: 
ORA-02290: check constraint (SCOTT.SYS_C006170) violated 


SQL> ed 
Wrote file afiedt.buf 

    1* insert into date_check values(to_date('01/01/2008 10:30', 'DD/MM/YYYY HH2 
4:MI')) 
SQL>/

1 row created. 

SQL> ed 
Wrote file afiedt.buf 

    1* insert into date_check values(to_date('01/01/2008 17:30', 'DD/MM/YYYY HH2 
4:MI')) 
SQL>/

insert into date_check values(to_date('01/01/2008 17:30', 'DD/MM/YYYY HH24:MI' 
)) 
* 
ERROR at line 1: 
ORA-02290: check constraint (SCOTT.SYS_C006170) violated 
+0

감사합니다. 경미한 오타 : "9에서 16 사이"는 9시에서 5시 사이에 일치하도록 "9와 17"사이에서 읽어야합니다. 감사합니다. . – Sajee

+0

나는 그것이 9와 16 사이에 있어야한다고 생각한다. 그것은 9:00:00 AM에서 4:59:59 PM까지 시간을 허용한다. 9시에서 17시 사이에 시간은 오전 9 시부 터 오후 5시 59 분 59 사이입니다. 5:00:00을 허용해야하는 경우 OR to_char (dt, 'HH24 : MI : SS') = '17 : 00 : 00 '을 제약 조건에 추가 할 수 있습니다 –

관련 문제