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:ssformatの文字列として指定することもできます。

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 に答える