Oracle JDBCドライババージョンによる日付型の扱いの違い
元記事最終更新:2010/08/26
概要
Oracle10gになってJDBCドライバの仕様が変わり、OracleのDATE型に対応するJava型が、java.sql.Timestampからjava.sql.Dateへ変更となった。また、Oracle側にTIMESTAMP型が追加となった(従来のDATE型は秒までの精度だが、TIMESTAMPはミリ秒精度)。
このこと自体は、SQLの標準に照らすと妥当な変更であるが、旧来の慣習によってDB設計を行った場合、問題となる場合があるため、備忘録として記述する。
変更内容
想定される悪影響
時刻情報の欠落
日付・時刻の情報を格納する前提でDATE型のカラムを用意したにもかかわらず、Javaで時刻情報が取得・更新できない。
回避策
時刻情報を含む項目はTIMESTAMP型で定義する。
この対応が本道。