まず、 java.util
を混乱させています java.sql
を使用 。 PreparedStatement#setDate()
および ResultSet#getDate()
、java.sql.Dateが必要です
。同様に、 PreparedStatement#setTimestamp()
および ResultSet#getTimestamp()
java.sql.Timestamp<が必要です/ code>
。
次に、 java.sql.Date
を理解することが重要です。 日付のみを表します (年、月、日)そしてそれ以下でもそれ以上でもありません。これはSQLDATE
にマップされます フィールドタイプ。 java.sql.Timestamp
タイムスタンプを表します (年、月、日、時、分、秒、ミリ秒)、 java.util.Date
および java.util.Calendar コード>
します。これは、SQL
TIMESTAMP
にマップされます。 またはDATETIME
フィールドタイプ。
タイムゾーンに関しては、データベースにタイムゾーン情報が保存されていない場合に必要です(したがって、すべてのタイムスタンプはUTC(GMT)で保存されます)。次に、 Calendar
を渡すことができます これには、現在のタイムゾーンに関する情報が含まれているため、JDBCドライバーはUTCタイムスタンプをタイムゾーンに準拠したタイムスタンプに調整できます。たとえばGMT+1の場合、JDBCドライバーはタイムスタンプに1時間を追加してから戻ります。