我尝试创建一个表,这就是我的设置方式:
CREATE TABLE emp_tab ( empno NUMeric(10), name VARCHAR(50) NOT NULL, job VARCHAR(50), manager NUMeric(10), hiredate DATE, salary NUMeric(10,2), commission NUMeric(10,2), deptno NUMeric(5), CONSTRAINT pk_emp_tab PRIMARY KEY (empno), CONSTRAINT fk_emp_tab_deptno FOREIGN KEY (deptno) REFERENCES dept_tab(deptno) );
这就是我插入值的方式:
INSERT INTO emp_tab VALUES(7004, 'SCOTT', 'ANALYST', 7002, date('87-7-13') - 85, 3000, null, 70 ); INSERT INTO emp_tab VALUES(7007, 'ADAMS', 'CLERK', 7003, date('87-7-13') - 51, 1100, null, 40 );
奇怪的是,我没有收到第一个插入值的错误消息,但收到第二个插入值的错误消息,内容为“日期值不正确:第 1 行的列“聘用日期”为“19870662”),但之后我删除了 - 51,它起作用了。但是,它会给我错误的日期,所以我想知道是否有机会保留 - 51 而不会出现错误?
您应该使用格式正确的日期和 DATE_SUB()