我有一个如下所示的查询,当从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);
型
还请指教。
3条答案
按热度按时间y0u0uwnf1#
我想你已经找到了答案,但如果有人需要它,这是我发现的:
java.sql.Date
没有时间,只有日期字段。要么使用java.sql.Timestamp
,要么使用java.util.Date
。这两个似乎都适合我使用NamedParameterJdbcTemplate
。i2loujxw2#
上述解决方案的一个小变化可以是当你的输入(lastBullfulReplicationTimeStamp 1/lastBullfulReplicationTimeStamp 2)是一个字符串而不是日期/时间戳(这是我正在寻找的,并在this链接->找到它可能可以帮助别人):
字符串
zzwlnbp83#
JavaTec和S0m30n3提供的简洁答案
我想分享一个使用
java.util.Date
的替代方法,该方法已被格式化为以下日期和时间格式的String
字符串
万一有人需要这个