Ich habe versucht, eine Tabelle zu erstellen und habe sie so eingerichtet:
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) );
So füge ich die Werte ein:
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 );
Das Seltsame ist, dass ich für den ersten eingefügten Wert keine Fehlermeldung erhalte, aber für den zweiten eingefügten Wert eine Fehlermeldung mit der Aufschrift „Falscher Datumswert: Spalte „Einstellungsdatum“ in Zeile 1 ist „19870662“. "), aber dann habe ich die -51 entfernt und es hat funktioniert. Allerdings wurde mir das falsche Datum angezeigt, sodass ich mich gefragt habe, ob es eine Chance gibt, die -51 ohne den Fehler beizubehalten?
您应该使用格式正确的日期和 DATE_SUB()