1

java.util.Dateを使用して現在の日付と時刻をフェッチするJavaプログラムがあり、次のようなフィールドを持つmysqlのテーブルがあります。

ActivityTime date; // date is the type

そして、プリペアドステートメントを使用してテーブルに挿入しました。

java.util.Date today = new java.util.Date();
long t = today.getTime();

PreparedStatement ps = con.prepareStatement(
                "insert into UserActivity values (?, ?, ?, ?, ?, ?)");
....
ps.setDate(5, new java.sql.Date(t));
....

日付は出力に正しく表示されますが、時刻は00:00:00です。なぜこれが発生するのかわかりません。時間の取得も手伝ってください。java.util.dateを印刷すると、正しい時刻が表示されます。問題は、SQLテーブルに時間を挿入する方法です。

PS:これは非常に単純かもしれませんが、JavaAPIは私にとって新しいものです

4

3 に答える 3

4

MySQL日時フィールドタイプを使用してから、関数を使用しNOW()て値を挿入することをお勧めします。

次のように日付を挿入します。

INSERT INTO `table-name`(`DATETIME-FIELD-NAME`) VALUES(NOW());
于 2012-05-07T05:59:19.217 に答える
1

おそらく必要ですjava.sql.Timestamp。データベースの最後でこれを処理できる場合は、デフォルト値を設定するだけです。

create table test (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
于 2012-05-07T05:57:59.410 に答える
0
PreparedStatement ps = con.prepareStatement(
                "insert into UserActivity values (?, ?, ?, ?, ?, ?)");
....
ps.setDate(5, new Timestamp(System.currentTimeMillis()));
....

希望はあなたのために役立つことができます

于 2012-05-07T06:04:58.183 に答える