如何使用jdbctemplate查询将java.util.date与Oracle的SYSDATE进行比较

时间:2019-06-26 13:24:59

标签: java sql oracle spring-jdbc

我有一个查询

select case when datefield >sysdate then 0 else columnvalue

如何以与datefield在Oracle中类似的格式为sysdate赋予价值?我正在使用jdbc模板从Java代码中查询。当前datefield的格式为yyyy-MM-dd

注意:datefield不是数据库中的列。它是从java传递的参数

1 个答案:

答案 0 :(得分:0)

您是否尝试过@a_horse_with_no_name关于使用java.sql.PreparedStatement的建议?
或者,您可以使用 JDBC Escape语法。该代码将类似于以下内容……

java.sql.Connection conn = // However you obtain it.
String sql = "select case when {d '2019-06-27'} > trunc(sysdate) then 0 else columnvalue";
java.sql.PreparedStatement ps = conn.prepareStatement(sql);
java.sql.ResultSet rs = ps.executeQuery();

请注意,您可以像处理任何字符串一样操作上述代码中的sql字符串。例如,您可以使用方法String.format()将硬编码的日期(2019-06-27)替换为java.util.Date的实例。