Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дата в SQL-запросе, Выборка между датами 
:(
    Опции темы
Sanek123
Дата 14.12.2009, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 22.10.2008

Репутация: нет
Всего: нет



Здравствуйте!
Имеется запрос:
Код

Form.ADOQuery.SQL.Add('Select * from T3 where TEKDATA >= ' + Char(39) + MaskEdit1.Text + Char(39)+') and (TEKDATA <= ' + Char(39) + MaskEdit2.Text + Char(39)+')' );

в МаскЕдитах соответственно содержатся даты начала искомых записей и конца по дате.
После выполнения запроса ничего не происходит. Ну, понятно, что что-то не так, непонятно - что? Я так понял что сравниваю две текстовые строки типа: "01.01.2009" и "10.12.2009" и потому Сиквел не поймет что именно мне от него нужно!
Я хочу, по крайней мере надеюсь, произвести выборку записей в базе данных Аксесс задав начальную дату и конечную. Например: если первая "01.01.2009", и вторая "10.12.2009", то должны появиться записи в которых в поле "дата" стоит: "01.01.2009", "02.01.2009", "03.01.2009", ... , 09.12.2009, "10.12.2009". 
Вопрос: Как реализовать сию премудрость? Как использовать даты в запросе? 
Кто подскажет?
Благодарю всех за внимание и ответы!
--------------------
Вас разыскивают бойцы 139-го порта...
PM MAIL   Вверх
Keeper89
Дата 14.12.2009, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 1
Всего: 58



Я бы сделал запрос с параметрами, куда поставлял дату:
Код

myDateTimeVar1 := StrToDateTime(MaskEdit1.Text);
...
ADOQuery.SQL.Add('Select * from T3 where TEKDATA BETWEEN :ME_DATE_1 AND :ME_DATE_2' );
ADOQuery.ParamByName('ME_DATE_1').AsDateTime := myDateTimeVar1;
...
ADOQuery.Open;



--------------------
PM MAIL WWW   Вверх
chip_and_dayl
Дата 14.12.2009, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 2
Всего: 9



Долго я помню с датами бился, оказывается в начале и конце даты нужно ставить #. И формат даты кажись мм-дд-гг

Добавлено @ 23:12
Вот кусок примера
Код

'where bDate>=#'+ FormatDateTime('mm-dd-yyyy', DateTimePicker1.Date) + '#'


Добавлено @ 23:17
Только понял, что решетка у тебя есть. Осталось переобразовать и все: FormatDateTime('mm-dd-yyyy', MaskEdit1.Text)  FormatDateTime('mm-dd-yyyy', MaskEdit2.Text)

Это сообщение отредактировал(а) chip_and_dayl - 14.12.2009, 23:17


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
RockClimber
Дата 15.12.2009, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: нет
Всего: 15



Цитата(chip_and_dayl @  14.12.2009,  23:11 Найти цитируемый пост)
Долго я помню с датами бился, оказывается в начале и конце даты нужно ставить #. И формат даты кажись мм-дд-гг

Видимо, недостаточно долго. Для access это решение сойдет, а вот постгресу, например, никакие # не нужны. И форматы дат любые понимает. И вообще, ответ Keeper89 самый правильный.


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
Beltar
Дата 15.12.2009, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: нет
Всего: 7



Цитата

Долго я помню с датами бился, оказывается в начале и конце даты нужно ставить #.


У самого Access запросы именно так и записаны.

С параметрами неприятная засада есть, если есть еще вложенный запрос, то получается лажа т. к. программа пытается засунуть параметры в него, но ничего не находит. Я обычно использую DateTimeToStr, в формате 'yyyy.mm.dd', что по моим наблюдения гарантирует от непоняток, но у меня не Access, а MS SQL-Server.

Честно говоря, у меня по этой теме много вопросов, например, даты переданные через параметры в профайлере отображаются как-то не так, хотя запрос отрабатывает правильно.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
chip_and_dayl
Дата 15.12.2009, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 2
Всего: 9



RockClimber
Цитата

Для access это решение сойдет, а вот постгресу, например, никакие # не нужны. И форматы дат любые понимает.

Ммм.. мы здесь вроде Access рассматриваем. Я под него и написал запрос.
А то что тебе понравился способ решения от Keeper89, так на вкус и цвет товарища нет

Это сообщение отредактировал(а) chip_and_dayl - 15.12.2009, 19:16


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
RockClimber
Дата 15.12.2009, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: нет
Всего: 15



chip_and_dayl, а, точно, прочитал первый пост невнимательно, извиняюсь... Но я бы все равно сначала мучил бы параметры.  smile 


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.