`java.sql.PreparedStatement`で、SQL文に時刻データを代入する際の注意点。 `setDate(java.sql.Date date)`のメソッドを使用した場合、引数の`java.sql.Date`のインスタンスがミリ秒まで指定されていても、時間以下の値は全て切り捨てられてしまう。(ドライバが引数の値をSQL DATE値に変換するため。) [参考 : PreparedStatement#setDate](https://docs.oracle.com/javase/jp/8/docs/api/java/sql/PreparedStatement.html#setDate-int-java.sql.Date-) 時間以下の値も代入したい場合は、`setTimestamp(java.sql.Timestamp timestamp)`のメソッドを利用すれば良い。 [参考 : PreparedStatement#setTimestamp](https://docs.oracle.com/javase/jp/8/docs/api/java/sql/PreparedStatement.html#setTimestamp-int-java.sql.Timestamp-) ちなみに`java.util.Date`から上記2つの方への変換はいずれも以下のように簡単にできる。 ```java java.util.Date date = new java.util.Date(); // java.util.Dateをjava.sql.Dateに変換 new java.sql.Date(date.getTime()); // java.util.Dateをjava.sql.Timestampに変換 new java.sql.Timestamp(date.getTime()); ```
2021/11/15 19:03:50

コメント (0)

あなたもコメントしてみませんか

アカウント新規作成(無料)

既にアカウントを持っている方は ログイン