我有一个查询,如下所示,当从SQL Developer运行时,该查询返回预期的记录

SELECT *
FROM MY_TABLE WHERE ( CRT_TS > TO_DATE('25-Aug-2016 15:08:18', 'DD-MON-YYYY HH24:MI:SS')
or UPD_TS > TO_DATE('25-Aug-2016 15:08:18', 'DD-MON-YYYY HH24:MI:SS'));

我认为当我们将java.util.Date对象作为日期参数传递时,我们不需要应用TO_DATE,但是下面的代码片段默默地向我返回了0条记录。

我在Java类中的SQL查询如下:
SELECT *
FROM MY_TABLE WHERE ( CRT_TS > :lastSuccessfulReplicationTimeStamp1
or UPD_TS > :lastSuccessfulReplicationTimeStamp2);

执行上面查询的代码如下,但是下面的代码片段默默地向我返回了0条记录:
    parameters.put("lastSuccessfulReplicationTimeStamp1", new java.sql.Date(outputFileMetaData.getLastSuccessfulReplicationTimeStamp().getTime()));
    parameters.put("lastSuccessfulReplicationTimeStamp2", new java.sql.Date(outputFileMetaData.getLastSuccessfulReplicationTimeStamp().getTime()));
    list = namedParameterJdbcTemplateOracle.query(sql, parameters, myTabRowMapper);

请指教。

最佳答案

我想您已经找到了答案,但是如果有人需要它,这就是我所发现的:
java.sql.Date没有时间,只有日期字段。使用java.sql.Timestampjava.util.Date。两者似乎都适合NamedParameterJdbcTemplate为我工作。

10-05 21:13
查看更多