Javaを使用してデータベースにタイムスタンプを設定しようとしていますが、テーブルで取得できるのは日付だけで、時間はありません(つまり、「2010-09-09 00:00:00」のようになります)。
Mysqlデータベースでdatetimeフィールドを使用しています( 表示 その datetimeはtimestampよりも一般的です であるため)。日付を設定する私のコードは次のようになります。
PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)")
Java.util.Date today = new Java.util.Date();
Java.sql.Date timestamp = new Java.sql.Date(today.getTime());
ps.setDate(1, timestamp);
ps.executeUpdate();
時刻を含めるように日付を設定するにはどうすればよいですか?
編集:以下のようにコードを変更すると、日付と時刻の両方が設定されます。
PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)")
Java.util.Date today = new Java.util.Date();
Java.sql.Timestamp timestamp = new Java.sql.Timestamp(today.getTime());
ps.setTimestamp(1, timestamp);
ps.executeUpdate();
_Java.sql.Timestamp
_およびsetTimestamp(int, Timestamp)
を使用します。 _Java.sql.Date
_は、格納されている列のタイプに関係なく、日付のみです。
何を使用する必要があるのか正確にはわかりませんが
ps.setDate();
日付の列タイプが必要です。つまり、それはそれを正規化し、時間を取り除きます。
試してみてください
ps.setTimetamp();