0

嗨,我有一列(键入日期)。我想插入自定义日期和时间而不使用Preparedstatement。我使用过

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”。它只插入日期而不是时间。那么如何使用java将日期时间插入oracle?请任何人帮助..

4

2 回答 2

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);
于 2012-10-26T04:44:29.437 回答
0

我认为yyyy/mm/dd HH:mm:ss应该更新为 :YYYY/MM/DD HH:MI:SS TZH:TZM并在此处使用to_timestamp--文档

 String query = "INSERT INTO entryTbl(name, joinedDate, ..etc.,) "+
           "values ('abc', "+
           "TO_TIMESTAMP('"+dateString+"', 'YYYY/MM/DD HH:MI:SS TZH:TZM'), etc.,)";
于 2012-10-26T04:45:19.997 回答