我有一个查询
select case when datefield >sysdate then 0 else columnvalue
如何以与datefield
在Oracle中类似的格式为sysdate
赋予价值?我正在使用jdbc模板从Java代码中查询。当前datefield
的格式为yyyy-MM-dd
。
注意:datefield不是数据库中的列。它是从java传递的参数
答案 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
的实例。