4
我有這樣甲骨文:年份必須-4713和+9999之間,而不是0
|---------------------------------|
|EMPNO | HIREDATE | INDEX_NUM |
|---------------------------------|
|1 | 2012-11-13 | 1 |
|2 | 2 | 1 |
|3 | 2012-11-17 | 1 |
|4 | 2012-11-21 | 1 |
|5 | 2012-11-24 | 1 |
|6 | 2013-11-27 | 1 |
|7 | 2 | 2 |
|---------------------------------|
Oracle表我想對這個表
SELECT hiredate
FROM admin_emp
WHERE TO_DATE('hiredate','yyyy-mm-dd') >= TO_DATE('2012-05-12','yyyy-mm-dd');
執行此query
但得到錯誤
ORA-01841: (full) year must be between -4713 and +9999, and not be 0
任何想法..?這裏有什麼問題?
查詢的基礎:在SQL分別表示字符串文字
CREATE TABLE admin_emp (
empno NUMBER(5) PRIMARY KEY,
hiredate VARCHAR(255),
index_num NUMBER(5));
insert into admin_emp(empno,hiredate,index_num) values
(1,'2012-11-13',1);
insert into admin_emp(empno,hiredate,index_num) values
(2,'2',1);
insert into admin_emp(empno,hiredate,index_num) values
(3,'2012-11-17',1);
insert into admin_emp(empno,hiredate,index_num) values
(4,'2012-11-21',1);
insert into admin_emp(empno,hiredate,index_num) values
(5,'2012-11-24',1);
insert into admin_emp(empno,hiredate,index_num) values
(6,'2013-11-27',1);
insert into admin_emp(empno,hiredate,index_num) values
(7,'2',2);
對不起......不同的錯誤..'ORA-01840:輸入值不夠長日期格式',讓我試試 –
某些行只具有''2'爲'hiredate'。它應該如何解釋?強烈建議您重新設計您的表格,並使用'DATE'作爲'hiredate'類型。爲你節省很多麻煩 –
你上一次'insert'語句,'insert into admin_emp(empno,hiredate,index_num)values (7,'2',2);'在'hiredate'中有一個非法值 - 你應該去掉它。順便說一句,將這一列定義爲「日期」預計可能是一個更好的主意,並節省了所有這些麻煩。 – Mureinik