Oracle JDBC Driver 11.2.0.4 から移行した後、JDBC 12c では java.sql.Date に Timestamp が追加される
(Doc ID 1948974.1)
Last updated on JULY 25, 2019
適用範囲:
JDBC - バージョン 12.1.0.1.0 から 12.1.0.2.0 [リリース 12.1]この文書の内容はすべてのプラットフォームに適用されます。
現象
Oracle JDBC Driver 12.1.0.1 から setDate() の動作が変更されています。この結果、setDate() を使用すると DATE 型のカラムに時間が格納されるようになりました。
Oracle JDBC Driver 12.1.0.1 から:setDate() の変数に定義されている時間が格納される
Oracle JDBC Driver 11.2.0.4 まで:ドライバが時間を "00:00:00" に設定する
サンプルコード:
PreparedStatement ps = conn.prepareStatement("insert into <TABLE>(<COL_NUM>, <COL_DATE>) values(1111, ?)");
Date cd = new Date(System.currentTimeMillis());
ps.setDate(1, cd);
ps.execute();
Date cd = new Date(System.currentTimeMillis());
ps.setDate(1, cd);
ps.execute();
結果:
"select to_char(<COL_DATE>, 'DD-MON-YYYY HH24:MI:SS') from <TABLE>" を実行すると、使用するOracle JDBC Driver によって次のような結果が返されます。
Oracle JDBC Driver 11.2.0.4 まで : 12-NOV-2014 00:00:00
Oracle JDBC Driver 12.1.0.1 から : 12-NOV-2014 16:14:48
原因
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
本書の内容
現象 |
原因 |
解決策 |
参照情報 |