ORA-01843与Oracle SQL无关

时间:2012-05-07 09:38:34

标签: sql oracle date

我在我的程序中使用sql语句。

stringBuffer sql=new StringBuffer();
sql.append("insert into customer (id,createddate) ");
sql.append("values (1,");
sql.append("'"+new Timestamp(System.currentTimeMillis())+"'");

String results=jdbcTemplate.update(sql.toString();

当我执行上述命令时,我得到了这个例外  嵌套异常是java.sql.SQLException:ORA-01843:不是有效月份

我应该绑定当前日期,我该如何解决这个问题。

感谢。

1 个答案:

答案 0 :(得分:4)

如果您可以使用数据库的日期,请使用sysdate,即:

stringBuffer sql=new StringBuffer();
sql.append("insert into customer (id,createddate) ");
sql.append("values (1,sysdate)");

或者您可以在查询中添加to_date

stringBuffer sql=new StringBuffer();
sql.append("insert into customer (id,createddate) ");
sql.append("values (1,to_date(");
sql.append("'"+<your TimeStamp converted to a String like yyyyMMddHHmmss>+"', 'yyyymmddhh24miss'");

或使用 PreparedStatement 作为here