先看一下你日期的格式
select sysdate from dual
然后可以修改一下
INSERT INTO biao1 (id,firstname,lastname,dob,phone)
VALUES (1,'John','Brown',to_date('01-JAN-1999','dd-mm-yyyy'),'1001');
select sysdate from dual
然后可以修改一下
INSERT INTO biao1 (id,firstname,lastname,dob,phone)
VALUES (1,'John','Brown',to_date('01-JAN-1999','dd-mm-yyyy'),'1001');
----------
01-1月 -90
01-1月 -80
01-1月 -80
01-1月 -70
01-1月 -03SQL> insert into temp values('02-1月 -04');已创建 1 行。SQL> select * from temp;TN
----------
01-1月 -90
01-1月 -80
01-1月 -80
01-1月 -70
02-1月 -04
01-1月 -03已选择6行。SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'
2 ;会话已更改。SQL> insert into temp values('03-1月-04');
insert into temp values('03-1月-04')
*
ERROR 位于第 1 行:
ORA-01861: 文字与格式字符串不匹配
SQL> insert into temp values('2004-01-03 00:00:00');已创建 1 行。SQL> select * from temp;TN
-------------------
1990-01-01 00:00:00
1980-01-01 00:00:00
1980-01-01 00:00:00
1970-01-01 00:00:00
2004-01-02 00:00:00
2004-01-03 00:00:00
2003-01-01 00:00:00已选择7行。SQL>
可见,使用这种字符串插入的方式弊端很多,
使用to_date()转换不会有这种问题