今天在 DRM中报错ora-01830
把sql语句输出作了以下的实验,发现是时间多了一个.0
后来的办法是先把这个时间转成to_char,再转成to_date
SQL> select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:ss') from dual;
select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:ss') from dual
ORA-01830: 日期格式图片在转换整个输入字符串之前结束
SQL> select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:sssss') from dual;
select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:sssss') from dual
ORA-01836: 小时与日中的秒发生冲突
SQL> select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:ss.sssss') from dual;
select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:ss.sssss') from dual
ORA-01836: 小时与日中的秒发生冲突
SQL> select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:ff') from dual;
select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:ff') from dual
ORA-01821: 日期格式无法识别
------------------------------------------------------------------
必须保证传入的字符串和要转换的格式精确匹配
SQL> SELECT TO_DATE('11-10-1996-13:51:21','DD/MM/YYYY-HH24') A FROM dual;
ERROR:
ORA-01830: date format picture ends before converting entire input string.
SQL> SELECT TO_DATE('11-10-1996-13:51:21','DD/MM/YYYY-HH24:MI:SS') B FROM dual;
--------------------------------------
以上是转载的
后来我是这么做的哈:
SELECT中将其他表的日期TO_CHAR下,然后再将值在INSERT时TO_DATE!
具体的做法如下:
SELECT TO_CHAR(parameter,'YYYY-MM-DD HH24:MI:SS') AS TIME
FROM TABLE_NAME_1;
...
...
INSERT INTO TABLE_NAME_2
(COLUME_NAME_1)
VALUE (TO_DATE('"+TIME+"','YYYY-MM-DD HH24:MI:SS'));
然后就OK了,呵呵,看来要学的还真多!
posted on 2006-08-10 21:03
Lansing 阅读(6128)
评论(2) 编辑 收藏 所属分类:
学习 、
个人日志 、
Oracle 10g 、
Java