1

私のSQLクエリはこのJavaコードによって生成されます:

public boolean generateFileForTable(java.util.Date lastSyncTime, NGMasterSyncData ngMasterSyncData, String fileName){
    StringBuffer query = new StringBuffer(200);
    query.append("Select ");
    query.append(ngMasterSyncData.getOperationModeCol());
    query.append(", ");
    query.append(ngMasterSyncData.getColumnList());
    query.append(" FROM ");
    query.append(ngMasterSyncData.getTableName());
    query.append(" WHERE ");
    query.append(ngMasterSyncData.getLastModifiedCol());
    query.append(" > ? ");

内部の値getLastModifiedCol()はタイムスタンプ形式(07-JUN-12 11.30.00.000000000 PM)であり、?のプリペアドステートメントにあります。、受信した時間を変換している(11-06-2012 11-59-50) in java .util.sql ので、基本的には、タイムスタンプ形式のこの時間をパラメータで受信した時間を比較したいと思います(last synn time -11-06-2012 11-59-50)

どのように進めればよいですか?準備したステートメントに何を入れるべきですか?

4

2 に答える 2

1

kapil、java.sql.Dateでは、時間のない日付しか比較できませんが、日付に時間が含まれているので、java.sql.Timestampを使用する必要があります。全体の実用的なソリューションは次のとおりです。

  PreparedStatement prest = con.prepareStatement(query);

  prest.setTimestamp(1, new java.sql.Timestamp(lastSyncTime.getTime()));
于 2012-06-13T08:58:55.237 に答える
0

値をpreparedStatementに挿入するときに、これを実行してください。

    ps.setTimestamp(1, new Timestamp(myDate.getTime()));
于 2012-06-13T06:51:09.393 に答える