我嘗試建立一個表,這就是我的設定方式:
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 而不會出現錯誤?
P粉4867436712024-02-27 20:50:28
您應該使用格式正確的日期和 DATE_SUB()
DATE_SUB(DATE('1987-07-13'), INTERVAL 85 DAY)