Как сравнить java.util.date с SYSDATE оракула в запросе, используя запрос jdbctemplate - PullRequest
0 голосов
/ 26 июня 2019

У меня есть запрос

select case when datefield >sysdate then 0 else columnvalue

Как определить значение для datefield в формате, аналогичном sysdate в Oracle?Я использую шаблон JDBC для запроса из кода Java.В настоящее время datefield имеет формат yyyy-MM-dd.

Примечание: поле даты не является столбцом в базе данных. Это параметр, переданный из java

1 Ответ

0 голосов
/ 27 июня 2019

Вы пробовали @ a_horse_with_no_name предложить использовать java.sql.PreparedStatement?
В качестве альтернативы вы можете использовать JDBC Escape Syntax . Код будет что-то вроде следующего ...

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...