10

Mysql データベースにJDBC の現在の日付と時刻を挿入しています。

現在の日付と固定時刻を Mysql 日付型フィールドに として送信します2012/05/25 00:00:00。日付部分は非常にうまく機能しますが、時間には値が表示されません。

次のコードで値を挿入しています。

java.util.Date myDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(myDate.getTime());
PreparedStatement PStmt = con.prepareStatement(Sql query);
PStmt.setDate(1,sqlDate);
4

5 に答える 5

19

java.sql.Timestampの代わりに使用java.util.Date

たとえばPreparedStatement、挿入を処理するために使用している場合、日付を次のように渡すことができます。

java.util.Date date = new Date();
pst.setTimestamp(columIndex, new java.sql.Timestamp(date.getTime()));
于 2012-05-25T10:37:37.887 に答える
2

mysqlの列タイプとしてタイムスタンプが必要だと思います。

于 2012-05-25T10:24:14.133 に答える
2

との違いに注意することをお勧めしjava.util.Dateますjava.sql.Date

java.util.Dateとjava.sql.Date

EDITは、データベースに適切なデータ型(DATE、DATETIME、またはTIMESTAMP)があることも確認します。

http://dev.mysql.com/doc/refman/5.1/en/datetime.html

于 2012-05-25T10:26:07.537 に答える
1

古い投稿ですが、答えは簡単で、要件によって異なります-要件に従って、DATETIMEデータ型を使用し、次を使用します

java.util.Date date = new Date();
pst.setTimestamp(columIndex, new java.sql.Timestamp(date.getTime()).getTime());

データベース側と jdbc 側の両方からの理由を見てみましょう。

データベースのデータ型から始めて、適切なものを選択します。あなたのケースにぴったりのものは、日付と時/分/秒が必要な DATETIME です。DATETIME タイプは壁時計の時刻を保存するために使用されますが、TIMESTAMP は固定された時点 (エポックから数ミリ秒後) に使用されます。両方が MySQL に内部的に保存される方法にも違いがあります。

JDBC 側に来ると、Date (日付部分のみ)、Timestamp (日付と時刻)、および Time (時刻のみ) の API メソッドがあります。JDBC が提供するものはこれですべてです。したがって、ニーズに合った API は setTimestamp です。

于 2013-10-25T19:57:30.533 に答える
0

1) java.util.DateJava クラスで使用します。

2) TIMESTAMPmysql でデータ型を設定します。

Date CreatedDate= new Date(System.currentTimeMillis());

PreparedStatement の場合: 次のようになります。

PreparedStatement PStmt = con.prepareStatement(Sql query);
PStmt.setDate(1,CreatedDate);
于 2012-05-25T10:34:12.867 に答える