2012-10-26 45 views
0

嗨,我有一个列(类型date)。我想插入自定义的日期和时间,而无需使用PreparedStatement的。我已经使用如何使用java在oracle中插入自定义日期时间?

String date = sf.format(Calendar.getInstance().getTime()); 
String query = "Insert into entryTbl(name, joinedDate, ..etc) values ("abc", to_date(date, 'yyyy/mm/dd HH:mm:ss'))"; 
statement.executeUpdate(query); 

但我得到文字不列入比赛错误。因此,即便有“SYSDATE”。其将仅迄今尚未time.So如何使用Java在Oracle中插入日期时间?请任何一个帮助..

+0

使用'PreparedStatement' –

+1

任何特定原因不使用PreparedStatement? – Vikdor

回答

1

强烈建议使用PreparedStatement来对抗潜在的SQL注入尝试攻击,而不是构建原始的SQL查询来与数据库进行交互。

也就是说,你可以在yyyy-MM-dd HH:mm:ss格式的字符串以及指定日期列的值:

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String date = sf.format(Calendar.getInstance().getTime()); 
String query = "INSERT INTO entryTbl(name, joinedDate, ..etc.,) values ('abc', '" 
    + date + "', ...etc.,)"; 
statement.executeUpdate(query); 
+0

由于我的表中有很多列,我们不知道很多字段是否放置了setInt(),setString()和where字段,还使用了PreparedStatement.So我们直接使用查询来执行tat命令...以及上面的查询也不能插入你提到的瓦特...是否有其他方式? – shree

0

我觉得yyyy/mm/dd HH:mm:ss应更新为:YYYY/MM/DD HH:MI:SS TZH:TZM和使用to_timestamp - documentation here

String query = "INSERT INTO entryTbl(name, joinedDate, ..etc.,) "+ 
      "values ('abc', "+ 
      "TO_TIMESTAMP('"+dateString+"', 'YYYY/MM/DD HH:MI:SS TZH:TZM'), etc.,)"; 
+0

没有它没有工作。 – shree

+0

@shrr:请分享dataString?在使用上面的语法之后也分享新的错误。 –

相关问题