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 回答