173 / 171 / 30
Регистрация: 12.12.2009
Сообщений: 1,336
1

ADOQuery запрос по диапазону дат

13.11.2011, 12:44. Показов 6567. Ответов 10
Метки нет (Все метки)

Добрый день всем! столкнулся с такой "нерешаемой пока" проблемой
знаю что подобная тема обсуждалась, но положительных результатов не было, как на этом форуме так и других.
SQL запрос с диапазоном дат
вообщем нужно делать запрос по выбранному диапазону дат. связь происходит с аксесом. пробовал такие варианты:
Поле: Дата, Тип: Дата
Delphi
1
2
3
4
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM касса WHERE дата between :08.11.2011 and  :12.11.2011');
ADOQuery1.Open;
также пробовал не через between, а через условие - ни к чему не приводило. в аксесе ставил и маски ввода и формат даты все безтолку.


на данный момент самый удачный как ни страннно результат такой
Поле: Дата, Тип: ТЕКСТОВЫЙ
Код:
Delphi
1
2
3
4
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM данные WHERE Дата>='+QuotedStr(DateToStr(sDateEdit2.Date))+' AND Дата<='+QuotedStr(DateToStr(sDateEdit3.Date)));
ADOQuery1.Open;
код работает, но в диапазоне одного месяца с 1 по последний день.

кто сталкивался с такой проблемой напрямую, пожалуйста помогите((((((
 Комментарий модератора 
Теги кода исправлены модератором. Для оформления кода Delphi следует выделить этот код и на панели редактирования сообщения нажать кнопку: "DELPHI".
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2011, 12:44
Ответы с готовыми решениями:

Фильтрация ADOQuery по диапазону дат
Здравствуйте. Помогите с фильтрациям есть ADOQuery подключенный к SQL Server 2008 поля data_time ...

Запрос на выборку записей из БД по диапазону дат
Выполняю следующий запрос: DM.ADOQuery1.Close; DM.ADOQuery1.Active := false; ...

ADOQuery поиск по диапазону даты
Подскажите пожалуйста как сделать поиск по диапозону даты регистрации в стране. Сколько пытаюсь...

Поиск по диапазону дат
Программа выдает ошибку синтаксиса(пропущен оператор). Я уже все...

10
47 / 47 / 5
Регистрация: 02.03.2010
Сообщений: 119
13.11.2011, 14:08 2
В ADOQuery есть св-во Parameters, двойным кликом по нему открываешь список параметров, создаешь параметр, например Dat1 и Dat 2, тип дата, и перед выполнением запроса определяешь параметры

Delphi
1
2
3
4
ADOQuery1.Parameters.ParamByName('Dat1').Value:= StrToDate(Edit1.text);
ADOQuery1.Parameters.ParamByName('Dat2').Value:= StrToDate(Edit2.text);
ADOQuery1.SQL.Add('SELECT * FROM касса WHERE дата between :Dat1 and  :Dat2');
ADOQuery1.Open;
и лучше имена полей латинскими буквами называть, а не русскими.
И вроде бы если русскими называешь, то в запросе их надо брать в [], [дата] between ...
1
173 / 171 / 30
Регистрация: 12.12.2009
Сообщений: 1,336
13.11.2011, 14:31  [ТС] 3
sharky123, в свойстве Paramters добавил 2 параметра, в кнопку запихнул код, но при клике пишет что параметры не найдены not found. хотя я их создал.
0
47 / 47 / 5
Регистрация: 02.03.2010
Сообщений: 119
13.11.2011, 14:35 4
Их перед выполнением запроса нужно определить.
На нажатие кнопки пиши
Delphi
1
2
3
4
5
....
ADOQuery1.Parameters.ParamByName('Dat1').Value:= StrToDate(Edit1.text);
ADOQuery1.Parameters.ParamByName('Dat2').Value:= StrToDate(Edit2.text);
ADOQuery1.SQL.Add('SELECT * FROM касса WHERE дата between :Dat1 and  :Dat2');
ADOQuery1.Open;
1
173 / 171 / 30
Регистрация: 12.12.2009
Сообщений: 1,336
13.11.2011, 14:40  [ТС] 5
так и делаю...
Миниатюры
ADOQuery запрос по диапазону дат   ADOQuery запрос по диапазону дат  
0
47 / 47 / 5
Регистрация: 02.03.2010
Сообщений: 119
13.11.2011, 14:42 6
Delphi
1
ADOQuery1.ParamCheck:= True
?
1
173 / 171 / 30
Регистрация: 12.12.2009
Сообщений: 1,336
13.11.2011, 14:45  [ТС] 7
и с true и с false ошибка, вот вложение, может туплю где-то..
Вложения
Тип файла: rar олол.rar (345.3 Кб, 60 просмотров)
0
47 / 47 / 5
Регистрация: 02.03.2010
Сообщений: 119
13.11.2011, 15:05 8
смотри
Вложения
Тип файла: rar олол.rar (347.2 Кб, 340 просмотров)
0
47 / 47 / 5
Регистрация: 02.03.2010
Сообщений: 119
13.11.2011, 15:06 9
просто добавил еще один Query и через него отбираешь данные.
1
173 / 171 / 30
Регистрация: 12.12.2009
Сообщений: 1,336
13.11.2011, 15:14  [ТС] 10
sharky123, низкий поклон тебе и огромное спасибо!) все работает
0
1440 / 1197 / 230
Регистрация: 04.04.2011
Сообщений: 4,157
14.11.2011, 12:07 11
Сначала надо
Delphi
1
SQL.Text := ...
и только потом
Delphi
1
Parameters... := ...
читаем внимательно TADOQuery.ParamCheck
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2011, 12:07

Сумма по диапазону дат
Доброго здоровья почтенные. Чтото совсем между ушей замкнуло. Делаю по таблице фильтр по...

Вывод данных в DBGrid по диапазону дат
Всем привет, вопрос в следующем, нужно сделать так чтоб данные из DBGrid выводились по диапазону...

Выборка значений в промежутке дат ADOQuery, TimeDataPicker, Delphi
Не получается выборка по заданному диапазону дат. Необходимо выводить записи с датами между...

Выборка по диапазону дат
Здравствуйте! У меня возник вопрос и на сайте ответа я по поиску не нашла. Т.к. тут есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.