2013-07-04 2 views
0

Я хочу получить данные между двумя датами из MS Access с помощью JDBC.MS Access извлекает данные между двумя датами с использованием JDBC

Я попытался

String query= "SELECT lastlogin FROM loginHistory " + 
      "WHERE lastlogin BETWEEN #01/07/2013# AND #03/07/2013#"+ 
      "ORDER BY lastLogin DESC"; 

Я не получаю желаемых результатов. В чем проблема. пожалуйста, помогите мне!

Thank you.

ответ

2

получил решение путем преобразования формата даты из 01/07/2013 в 2013/07/01

String query= "SELECT lastlogin FROM loginHistory " + 
      "WHERE lastlogin BETWEEN #2013/07/01# AND #2013/07/03#"+ 
      "ORDER BY lastLogin DESC"; 

Спасибо всем за поддержку меня ..

0

Query пропустил " в конце, и вы добавили его в середине.

Попробуйте

String query= "SELECT lastlogin FROM loginHistory " + 
      "WHERE lastlogin BETWEEN #01/07/2013# AND #03/07/2013# "+ 
      "ORDER BY lastLogin DESC"; 
+0

жаль это было опечатка ... запрос дает непредсказуемые результаты для меня .. –

0

Вашего синтаксис SQL является правильным, но у вас есть дополнительная кавычка в середине коды, непосредственно после первой даты, указанных в пункте МЕЖДУ.

+0

жаль это было описку ... в QUER y дает нежелательные результаты для меня .. –

0

Я не получаю желаемые результаты.

Я считаю, что ваш код компилируется, но вы не получаете результат, который вы ожидаете. Хотя ваш код, размещенный здесь, пропускает кавычку. Я считаю, что это опечатка, иначе код не был бы скомпилирован.

Проверьте правильность формата строки даты в запросе. Выполнить запрос как PreparedStatement:

String query= "SELECT lastlogin FROM loginHistory " + 
     "WHERE lastlogin BETWEEN ? AND ?"+ 
     "ORDER BY lastLogin DESC"; 

и установить строки даты после форматирования это правильно, используя формат Date. Также проверьте, что тип данных для столбца, это VARCHAR/String или DATE и т.д. Вы можете даже использовать format() в самом запросе SQL:

Select lastlogin From loginHistory where format(lastlogin,"dd/mm/yyyy") 
BETWEEN format(#01/07/2013#,"dd/mm/yyyy") AND 
format(#03/07/2013#,"dd/mm/yyyy") ORDER BY lastLogin DESC; 
+0

Я уже отформатировал дату в формате «dd/MM/yyyy». Теперь для PreparedStatement я использовал setString (1.from) и setString (2, to) –

+0

и его предоставление Исключение как: [Microsoft] [ODBC Microsoft Access Driver] Синтаксическая ошибка (отсутствующий оператор) в выражении запроса «lastlogin BETWEEN Pa_RaM000 И Pa_RaM001ORDER BY lastLogin DESC». –

+0

для вашего второго запроса его предоставления SQLException: Слишком мало параметров. Ожидаемый 1. –