Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

PreparedStatement で java.sql.Date の時分秒

CTです。よろしくお願いします。

Oracleの Date項目に年月日時分秒データを入れる必要があり,PreparedStatement.setDate() で
java.sql.Date 型のオブジェクトを設定しました。

設定自体はうまく行くのですが,DBに保存されているデータは,年月日のみで,時分秒は 全て0 になってします。 ( setDate に渡す Dateオブジェクトは,時分秒が入っている事をJava上で確認しています。)

PreparedStatement.setDate() を使用せず,PreparedStatement.setString( 1, TO_DATE(  ) ) とすると,ORA-01841 が出てきて動きません。 

ちなみに,PreparedStatement を使用せず,文字列でSQLを組み立てた場合(TO_DATE()を利用)は,時分秒まで正しくデータ登録ができています。

もし,どなたか情報をお持ちでしたら,アドバイス,指摘をお願いします。

2

回答

16509

閲覧

2件の回答

評価

0

「oracle jdbc 日付」とかぐぐる。
まずは検索。

評価

60

自己レスです。

PreparedStatement.setObject( 1, new Timestamp( date.getTime() ) 

として解決できました。
ありがとうございました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。