我有一个查询,如下所示,当从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.Timestamp
或java.util.Date
。两者似乎都适合NamedParameterJdbcTemplate
为我工作。