如果字段为'2003-01-01'
这么写是没错.但如果是'1-jan-2003'
这么写肯定出错

解决方案 »

  1.   

    如果是系统业务需要输入日期的,最好将日期格式设置成统一的"yyyy-mm-dd"或"yyyy/mm/dd"等。
    一般如果数据库中保存的字段是date型的,转换就比较方便,只需改变字段的显示方式既可。
    如果是要将String类型或者其他类型的字段转换成date的,最好先将其格式调整为"xxxx-xx-xx",然后用to_date(),象'1-jan-2003'就比较难办了!
      

  2.   

    to_date('2001-01-01','YYYY-MM-DD')
    或者
    to_date('01-01-2001','DD-MON-YYYY')
      

  3.   

    to_Date('2003-01-01 16:20','yyyy-mm-dd hh24:mi')to_Date('1-jan-2003 16:22','dd-mon-yyyy hh24:mi')
      

  4.   

    如果没有办法确定输入格式的话,最好写一个function去判断输入格式,并使用相应的to_date()函数格式
      

  5.   

    一般的使用 TO_DATE('2003-03-10 12:11:12','YYYY-MM-DD HH24:MI:SS')
    对于象'1-jan-2003'可以转化系统日期格式select * from nls_session_parameters
    check NLS_DATE_FORMAT , 假设它是 DD-MON-RRinsert into t1 values ( '01-JAN-03' );
    commit;