to_date('2002-3-17 7:07:22 下午','yyyy-mm-dd hh12:mi:ss am')
不要写这么细行吗?为什么这么细呢?如果是当前的日期,可以在oracle中插入。短点试试吧。
to_date('2001-01-01','yyyymdd-dd') 

解决方案 »

  1.   

    to_date('2003-05-23 12:56:00','yyyy-mm-dd hh24:mi:ss')
    试试这个,不过这是24的。上面的'yyyymdd-dd'写错了,不好意思。
      

  2.   

    http://expert.csdn.net/Expert/topic/1823/1823837.xml?temp=.1974146
    这里讨论的就是上面的问题。希望有帮助
      

  3.   

    谢谢duoshanx(我喜欢春天.小草绿了,水朗润了起来..) 。由于项目的需要,必需要分上午、下午来表示时间。
    需要重申的是,我写的insert语句在oracle9.2里的sql*plus直接执行是很正常的。也就是说:insert into JExcelTest values(span_seq.nextval,to_date('2002-3-17 7:07:22 下午','yyyy-mm-dd hh12:mi:ss am'))是可以被正确执行的。你给的帖子我看了,其中讲述的内容我都清楚,我的问题是:这个insert语句到java里用statement.executeupdate()就不行了,即:
    String sql = "insert into JExcelTest values(span_seq.nextval,to_date('2002-3-17 7:07:22 下午','yyyy-mm-dd hh12:mi:ss am'))";
    statement.executeupdate();
    就报错:ORA-00911 : 无效字符很奇怪。何解?
      

  4.   

    其实,这个时间是从excel文件里取出来的。由于所用的api 对自定义格式的数据无法正确读取,所以,只能折中处理,将excel里的数据格式设置为区分上、下午的。所以,我只能以12的形式取出数据并以12的形式向数据库插入数据。
      

  5.   

    有可能sql = " "里面没有注意空格问题
      

  6.   

    looxee,请能不能说的更明白些?是哪里需要注意空格问题?如何解决?
      

  7.   

    去oracle网站下一个9i的驱动试试,
    你可能用的是8i的驱动了。
      

  8.   

    又是在itput里问到的。
    我程序里写的是:
    String sql = "insert into ... values(...);";
    statement.executeQuery(sql);去掉sql所引用的字符串里的“;”就ok了。