sql >> データベース >  >> RDS >> Oracle

JDBC は Oracle DB に挿入する前に Date を調整しますか?これを防ぐにはどうすればよいですか?

    問題は、Java Date オブジェクトはタイムゾーンを保存しません。値は 常に UTC で、特定のタイム ゾーン (通常は JVM のデフォルト タイム ゾーン) で解析およびフォーマットされます。

    オラクル DATE 列もタイムゾーンなしで保存されますが、ユーザーに表示される日付を表す必要があります。 99.99% のケースで、これは JVM のデフォルト タイム ゾーンの日付を意味します。

    したがって、JDBC ドライバーは Timestamp を取得します。 / Date 値 (UTC) はデフォルトのタイム ゾーンに変換され、データベースに保存されます。

    PreparedStatement.setTimestamp(int parameterIndex, Timestamp x) 方法。タイムゾーンを制御するには、PreparedStatement.setTimestamp(int parameterIndex, Timestamp x, Calendar cal) 方法。 javadoc の引用:




    1. カスタムクエリページネーションCakephp

    2. Postgres + Hibernate + Java UUID

    3. データベーススキーマの列を非推奨にする最良の方法は何ですか?

    4. refカーソルを返すOracleストアドプロシージャを呼び出す方法