17

日時型として定義された列に現在の日付と時刻を挿入したいと考えています。

次のコードを入力しました。

java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime());
PrepStmt.setDate(1, sqlDate);

データベースを確認すると、日付は正しく挿入されていますが、時刻は 00:00:00 です。修正は何ですか?

4

6 に答える 6

28

列タイプとして使用しているため、日付を保存して挿入するdatetimeために使用する必要があります。java.sql.TimestampPrepareStatement.setTimestamp

これを使ってみてください: -

java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());
PrepStmt.setTimestamp(1, date);
于 2012-10-28T20:46:51.613 に答える
9

間違った方法を使用しています。代わりに使用できますPreparedStatement#setTimestamp(int parameterIndex, Timestamp x)

于 2012-10-28T20:43:20.150 に答える
4

使用する必要があるのは、 setDate() メソッドの代わりにsetTimestamp(int parameterIndex,Timestamp x)メソッドです。

タイムスタンプを設定する方法の 1 つは、次のようになります。

Timestamp timestamp = new Timestamp(new Date().getTime());

次に、パラメータを次のように設定できます。

PrepStmt.setTimestamp(1, timestamp);
于 2012-10-28T20:44:19.297 に答える
3

必要なようですね

java.sql.Timestamp

使用するものjava.sql.Dateは日付のみを処理するためのもので、時間を記録しません。または、時間だけが必要な場合に使用できjava.sql.Timeます。

于 2012-10-28T20:44:57.293 に答える
2
java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());
PrepStmt.setTimestamp(1, date);

私はこれを使用してそれを解決しました..

于 2015-12-15T12:34:23.743 に答える
2

setTimestamp を試してみてください

PrepStmt.setTimestamp(1, sqlDate);
于 2012-10-28T20:45:40.747 に答える