![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Делаю такую фильтрацию первый раз. Помогите с кодом.
Использую базу Access. Тип подключения ADOQuery. Таблица с именем main и поле дата "ohot_d_vyd". Хочу сделать фильтрацию по нажатию кнопки данные по промежутку даты. Например с 01.01.2012 по 01.02.2012. И чтобы в DBGrid было отфильтрованный результат по запросу. Вот мой начальный код: Код:
procedure TForm7.BitBtn4Click(Sender: TObject); begin Adoquery1.Close; Adoquery1.SQL.Text := 'SELECT * FROM main WHERE [ohot_d_vyd]=> '''+DBdateTimeEditeh1.Text+''' and <='''+DBdateTimeEditeh2.Text+''''; Adoquery1.Open; end; Код:
Ошибка синтаксиса (пропущен оператор) в выражении запроса [ohot_d_vyd]=> '01.02.2012' and <='01.03.2012'' Последний раз редактировалось sctr, 03.03.2012 в 15:52. |
#2
|
|||
|
|||
![]() Промежутот делается так:
x >= a and x <= b или x between a and b |
#3
|
|||
|
|||
![]() Для нормальной фильтрации по датам нужно передавать даты не как текст, а указывать, что это даты. И делать через BETWEEN. Типа так
Код:
'SELECT * FROM Arhiv WHERE Data BETWEEN dateValue("' + formattedDateTime + '") AND dateValue("' + formattedDateTime2 + '");' |