We provide programming data of 20 most popular languages, hope to help you!
, emp_dob DATE NOT NULL
CREATE TABLE employee(emp_id NUMBER(4) PRIMARY KEY
, emp_name VARCHAR2(40) NOT NULL
, emp_address VARCHAR2(60) NOT NULL
, emp_tel NUMBER(11) NOT NULL
, CONSTRAINT emp_tel_length CHECK (LENGTH(emp_tel) BETWEEN 9 and 11)
, emp_dob DATE NOT NULL
, CONSTRAINT check_date_of_birth CHECK (emp_dob BETWEEN DATE '1950-01-01' AND sysdate))
SQL> ed
Wrote file afiedt.buf
1 create table t(
2 birth_date date check( birth_date between date '1900-01-01' and
3 sysdate )
4* )
SQL> /
sysdate )
*
ERROR at line 3:
ORA-02436: date or system variable wrongly specified in CHECK constraint
SQL> ed
Wrote file afiedt.buf
1 create table t(
2 birth_date date check( birth_date between date '1900-01-01' and
3 date '2011-12-08' )
4* )
SQL> /
Table created.
CREATE OR REPLACE TRIGGER check_birth_date
BEFORE INSERT OR UPDATE ON employee
FOR EACH ROW
BEGIN
IF( :new.emp_dob < date '1900-01-01' or
:new.emp_dob > sysdate )
THEN
RAISE_APPLICATION_ERROR(
-20001,
'EMployee date of birth must be later than Jan 1, 1900 and earlier than today' );
END IF;
END;
CREATE DOMAIN birthdate AS date DEFAULT NULL
CHECK (value >= '1900-01-01' AND value <= now())
;
CREATE TABLE employee
( empno INTEGER NOT NULL PRIMARY KEY
, dob birthdate NOT NULL
...
);
CREATE TABLE "AB_EMPLOYEE22"
(
"NAME" VARCHAR2 ( 20 BYTE ),
"AGE" NUMBER,
"SALARY" NUMBER,
"DOB" DATE,
"DOJ" DATE DEFAULT SYSDATE
);
Table Created
ALTER TABLE "AB_EMPLOYEE22" ADD CONSTRAINT
AGE_CHECK CHECK((ROUND((DOJ-DOB)/365)) = AGE) ENABLE;
Table Altered
CREATE TABLE EMPLOYEE(
NAME VARCHAR(20) NOT NULL,
DOB DATE NOT NULL,
DATE_JOINING DATE DEFAULT NOW(),
AGE INTEGER DEFAULT TIMESTAMPDIFF(YEAR,DOB,DATE_JOINING) CHECK(AGE>20)
);
INSERT INTO EMPLOYEE(NAME,DOB) VALUES('NAYAK','1998-2-3');
Query OK, 1 row affected, 1 warning (0.128 sec)
SELECT * FROM EMPLOYEE;
+-------+------------+--------------+------+
| NAME | DOB | DATE_JOINING | AGE |
+-------+------------+--------------+------+
| NAYAK | 1998-02-03 | 2019-10-15 | 21 |
+-------+------------+--------------+------+
1 row in set (0.001 sec)
INSERT INTO EMPLOYEE(NAME,DOB) VALUES('NIRAJAN','2005-2-3');
ERROR 4025 (23000): CONSTRAINT `EMPLOYEE.AGE` failed for `NAYAK`.`EMPLOYEE`
ALTER TABLE "students"
ADD CONSTRAINT "students_must_be_over_18" CHECK (
CURRENT_TIMESTAMP - "date_of_birth" > INTERVAL '18 years'
);
.wp-block-code {
border: 0;
padding: 0;
}
.wp-block-code > div {
overflow: auto;
}
.shcb-language {
border: 0;
clip: rect(1px, 1px, 1px, 1px);
-webkit-clip-path: inset(50%);
clip-path: inset(50%);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
word-wrap: normal;
word-break: normal;
}
.hljs {
box-sizing: border-box;
}
.hljs.shcb-code-table {
display: table;
width: 100%;
}
.hljs.shcb-code-table > .shcb-loc {
color: inherit;
display: table-row;
width: 100%;
}
.hljs.shcb-code-table .shcb-loc > span {
display: table-cell;
}
.wp-block-code code.hljs:not(.shcb-wrap-lines) {
white-space: pre;
}
.wp-block-code code.hljs.shcb-wrap-lines {
white-space: pre-wrap;
}
.hljs.shcb-line-numbers {
border-spacing: 0;
counter-reset: line;
}
.hljs.shcb-line-numbers > .shcb-loc {
counter-increment: line;
}
.hljs.shcb-line-numbers .shcb-loc > span {
padding-left: 0.75em;
}
.hljs.shcb-line-numbers .shcb-loc::before {
border-right: 1px solid #ddd;
content: counter(line);
display: table-cell;
padding: 0 0.75em;
text-align: right;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
white-space: nowrap;
width: 1%;
}enddate >= begindate AND begindate >= '1970-01-01'Code language: JavaScript (javascript)
CREATE TABLE batches (
batchid int(11) NOT NULL,
batchname varchar(255) NOT NULL,
begindate date NOT NULL,
enddate date NOT NULL,
courseid int(11) NOT NULL,
PRIMARY KEY (batchid),
CONSTRAINT fk_courseid FOREIGN KEY (courseid) REFERENCES courses (courseid),
CONSTRAINT chk_date CHECK(enddate >= begindate AND begindate >= '1970-01-01')
)Code language: PHP (php)
CONSTRAINT chk_date CHECK(enddate >= begindate AND begindate >= '1970-01-01')Code language: JavaScript (javascript)
enddate >= begindate AND begindate >= '1970-01-01'Code language: JavaScript (javascript)
ALTER TABLE batches
ADD CONSTRAINT chk_date
CHECK(enddate >= begindate AND begindate >= '1970-01-01')Code language: JavaScript (javascript)
ALTER TABLE batches
DROP CONSTRAINT chk_date
ALTER TABLE Table1
ADD (CONSTRAINT GT_Table1_CloseDate
CHECK (CloseDate > SYSDATE),
CONSTRAINT LT_Table1_CloseDate
CHECK (CloseDate <= SYSDATE + 365)),
CONSTRAINT GT_Table1_StartDate
CHECK (StartDate > (CloseDate + (SYSDATE + 730))));
Error report:
SQL Error: ORA-02436: date or system variable wrongly specified in CHECK constraint
02436. 00000 - "date or system variable wrongly specified in CHECK constraint"
*Cause: An attempt was made to use a date constant or system variable,
such as USER, in a check constraint that was not completely
specified in a CREATE TABLE or ALTER TABLE statement. For
example, a date was specified without the century.
*Action: Completely specify the date constant or system variable.
Setting the event 10149 allows constraints like "a1 > '10-MAY-96'",
which a bug permitted to be created before version 8.
CREATE OR REPLACE TRIGGER trg_check_dates
BEFORE INSERT OR UPDATE ON table1
FOR EACH ROW
BEGIN
IF( :new.CloseDate <= SYSDATE )
THEN
RAISE_APPLICATION_ERROR( -20001,
'Invalid CloseDate: CloseDate must be greater than the current date - value = ' ||
to_char( :new.CloseDate, 'YYYY-MM-DD HH24:MI:SS' ) );
END IF;
IF( :new.CloseDate > add_months(SYSDATE,12) )
THEN
RAISE_APPLICATION_ERROR( -20002,
'Invalid CloseDate: CloseDate must be within the next year - value = ' ||
to_char( :new.CloseDate, 'YYYY-MM-DD HH24:MI:SS' ) );
END IF;
IF( :new.StartDate <= add_months(:new.CloseDate,24) )
THEN
RAISE_APPLICATION_ERROR( -20002,
'Invalid StartDate: StartDate must be within 24 months of the CloseDate - StartDate = ' ||
to_char( :new.StartDate, 'YYYY-MM-DD HH24:MI:SS' ) ||
' CloseDate = ' || to_char( :new.CloseDate , 'YYYY-MM-DD HH24:MI:SS' ) );
END IF;
END;
CREATE TABLE "AB_EMPLOYEE22"
(
"NAME" VARCHAR2 ( 20 BYTE ),
"AGE" NUMBER,
"SALARY" NUMBER,
"DOB" DATE,
"DOJ" DATE DEFAULT SYSDATE
);
Table Created
ALTER TABLE "AB_EMPLOYEE22" ADD CONSTRAINT
AGE_CHECK CHECK((ROUND((DOJ-DOB)/365)) = AGE) ENABLE;
Table Altered
CREATE OR REPLACE FUNCTION SYSDATE_DETERMINISTIC RETURN DATE DETERMINISTIC IS
BEGIN
RETURN SYSDATE;
END SYSDATE_DETERMINISTIC;
/
CREATE TABLE Table1 (
s_date DATE,
C_DATE DATE GENERATED ALWAYS AS ( SYSDATE_DETERMINISTIC() )
);
ALTER TABLE Table1 ADD CONSTRAINT s_check CHECK ( s_date < C_DATE );
ALTER TABLE Table1
ADD (REGISTER_DATE DATE);
CREATE OR REPLACE TRIGGER trg_check_dates
BEFORE INSERT OR UPDATE ON table1
FOR EACH ROW
BEGIN
:new.REGISTER_DATE := SYSDATE;
END;
ALTER TABLE Table1
ADD (CONSTRAINT GT_Table1_CloseDate
CHECK (CloseDate > REGISTER_DATE),
CONSTRAINT LT_Table1_CloseDate
CHECK (CloseDate <= REGISTER_DATE + 365)),
CONSTRAINT GT_Table1_StartDate
CHECK (StartDate > (CloseDate + (REGISTER_DATE + 730))));
ALTER TABLE dbo.MembershipInfo
ADD CONSTRAINT no_future_date_allowed
CHECK (Joined < CURRENT_TIMESTAMP)
ALTER TABLE Table_Name
ADD CONSTRAINT no_future_date_allowed
CHECK (Column_Date < DATEADD(day,DATEDIFF(day,'20000101',CURRENT_TIMESTAMP)+1,'20000101'))
ALTER TABLE dbo.MembershipInfo
ADD CONSTRAINT no_future_date_allowed
CHECK (Joined < CURRENT_TIMESTAMP)
SELECT GETDATE();
CREATE DATABASE geeks;
USE geeks;
CREATE TABLE geeksforgeeks(
NAME VARCHAR(20),
Ordered DATE,
Deliver DATE);
INSERT INTO geeksforgeeks VALUES
('ROMY', '2021-01-16', '2021-03-12'),
('AVINAV', '2021-11-12', '2021-12-12'),
('PUSHKAR', '2021-06-23', '2021-10-13');
SELECT * FROM geeksforgeeks;
SELECT * FROM geeksforgeeks WHERE Deliver > GETDATE();
SELECT * FROM geeksforgeeks WHERE Ordered > GETDATE();
WHERE (enddate IS NOT NULL AND startdate IS NOT NULL AND enddate > startdate)
ALTER TABLE dbo.yourtable ADD CONSTRAINT CK_yourtable_dates
CHECK (ISNULL(startd, SYSDATETIME) < ISNULL (endd, SYSDATETIME))
Alter table dbo.your_table ADD CONSTRAINT CK_Start_Date_before_End_Date
Check (Start_Date is null OR End_Date is null OR Start_Date < End_Date)