5

現在の日付と時刻 (ミリ秒) を MySQL に挿入する必要があります。私は次のことをしました:

long time = System.currentTimeMillis();
java.sql.Timestamp timestamp = new java.sql.Timestamp(time);
System.out.println("Time in milliseconds :" + timestamp);

そして、ミリ秒単位の時間を正しく取得しました(例:2013-03-21 00:08:33.523)。ただし、この情報を MySQL データベースに挿入する必要があります。私は以下を使用して試しましたPreparedStatement

prepStmt.setTimestamp(2,timestamp);

ただし、時間はミリ秒なしで挿入されます (例: 2013-03-21 00:08:33)。

ミリ秒単位で時間を挿入するにはどうすればよいですか。

編集:データベースの列はDATETIME型です。

4

4 に答える 4

9
java.util.Date date = new java.util.Date();
java.sql.Timestamp timestamp = new java.sql.Timestamp(date.getTime());
preparedStatement.setTimestamp(1, timestamp);
于 2013-03-20T21:12:31.477 に答える
2

列が DATETIME 型の場合、PreparedStatement の setDate メソッドを使用します。

java.sql.Date date = new java.sql.Date(System.currentTimeMillis());
stmnt.setDate(1, date);
于 2013-03-20T21:15:54.140 に答える
1

メソッド getCurrentTimeStamp() を作成し、JDBC ステートメントから呼び出すことができます

prepareStatement.setTimestamp(4,getCurrentTimeStamp());

方法:

private static java.sql.Timestamp getCurrentTimeStamp() {

java.util.Date today = new java.util.Date();
return new java.sql.Timestamp(today.getTime());

}

于 2014-05-24T16:53:35.150 に答える
0

質問は他のメンバーによって正しく回答されているので、データベースへの日付型の保存に関する個人的な後知恵を追加させてください。

個人的なレベルでは、日付情報を長い形式で保存することを好みます。保管とその後の使用の両方が簡単であることがわかりました。ほとんどの言語では、長いパラメーターを使用して新しい Date を作成できるようになっているだけでなく、事前設定された形式にとらわれず、別の形式に変更することもできます。たとえば、開発している Web サイトで日付を英語またはフランス語の形式にフォーマットする必要がある場合、言語パラメーターで if-else if を使用し、言語設定に応じて特定の形式を適用する方が簡単です。

ただし、この方法にはいくつかの欠点があります。たとえば、Java を使用しないクエリによって実行される自動化されたレポートの場合は、読み取り可能な形式に戻す必要があります。

-----------------------------ADD CODE-----------------------------

    // Stored as 0 if the date is not initialised
    long time = objInscription.getDatePremierVisionnement() != null ?
        objInscription.getDatePremierVisionnement().getTime() : 0;

-------------------------------GET CODE----------------------------
    // long is store as 0 if the date has not been initialised           
    long long = rs.rsReadColumnLong(1);
    if (long  == 0) {
        someobj.setSomeDate(null);
    } else {
        someobj.setSomeDate(new Date(long));
    }

SimpleFormat を使用して簡単にデータを表示できます。

于 2013-03-20T21:29:02.077 に答える