2012-03-26 3 views
0

В Java я определенная строка с именем года:Подставляя значение функции тузда хранится в строке в Resultset заявлении с использованием JSP

String year="year(now())-1" 

Теперь я хочу, чтобы значение этой строки будет subsituted ниже, используя where like пункт:

ResultSet rs = stmt.executeQuery("select abc from table where year like '"+year+"' ") 

Но, используя вышеприведенное заявление, я не получаю результата. Может ли кто-нибудь рассказать, где я ошибаюсь?

ответ

2

минус 1 год

DATE_SUB(NOW(),INTERVAL 1 YEAR) 

Таким образом, вы можете использовать

String year="DATE_SUB(NOW(),INTERVAL 1 YEAR)" 

Финал:

ResultSet rs = stmt.executeQuery("select abc from table where year = "+year+""); 
+0

, но все равно я не получаю вывод – jan5

+0

Вы уверены, что ваш запрос вернет результат? Попробуйте запустить «select year from abc», чтобы проверить, существует ли год = 2011 –

+0

да, он работал с оператором =, но я хочу реализовать, используя такой же оператор, потому что у меня есть условие, в котором я хочу выбрать весь год. Для выбора всех значений года у меня есть использовать LIKE '%%', который нельзя использовать в операторе = – jan5

0

Вы пытались использовать оператор сравнения = вместо этого? Кроме того, вы проверили входной параметр по отношению к данным? Запишите запрос и посмотрите, что на самом деле создается.

+0

да я пробовал, но его не работает. но я хочу использовать его, используя – jan5

0

попробуйте использовать% в вас, где с, как:

stmt.executeQuery("select abc from table where year like '%"+year+"%' ")

+0

не работает bro – jan5

+0

Каково значение 'year' в вашей таблице и что находится в переменной' year'? – Vikram

+0

год - это в основном переменная INT, имеющая значения, такие как 2011,2001 и т. Д. – jan5

0

включают в%, как ...

ResultSet rs = stmt.executeQuery("select abc from table where year like '%"+year+"%' ") 

 Смежные вопросы

  • Нет связанных вопросов^_^