Oracle Tips — 作者 wonder @ 22:52
今天在 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;
B
———
11-OCT-96