Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > выборка по дате в Access


Автор: z-END 10.3.2006, 13:00
Как делается сабж в этой "чудной" базе данных =)
пытаюсь прикрутить такую кверю:
Код

'SELECT * FROM mytable WHERE  completed=false AND return_date BETWEEN ' + QuotedStr (DateToStr (0)) + ' AND ' + QuotedStr (DateToStr (Тow));

но работать нехочет...smile
ругается на Data type mismatch in criteria expression как быть?

Автор: Vas 10.3.2006, 13:13
Попробуй так, у меня получалось, хотя тоже намучился с этими датами я прилично:
Код

ADOQuery.SQL.Add('SELECT * FROM mytable WHERE  completed=false AND return_date BETWEEN :DateBeg AND :DateEnd')
ADOQuery.Parameters.ParseSQL(ADOQueryProtokol.SQL.Text, True);
ADOQuery.Parameters.ParamByName('DateBeg').Value:=FormatDateTime('dd.mm.yyyy',DateTimePicker1.Date)+' 00:00:00';
ADOQuery.Parameters.ParamByName('DateEnd').Value:=FormatDateTime('dd.mm.yyyy',DateTimePicker2.Date)+' 23:59:59';
  try
    ADOQuery.Open;
  except
    on E:EADOError do
      Raise Exception.Create(E.Message);
  end;

Автор: z-END 10.3.2006, 13:17
блин smile а без парсинга можно как-нить организовать... а то у меня немного другая реализация- я в функцию строку передаю а уже в функции она в SQL.Text передается...

Автор: Vas 10.3.2006, 13:22
Цитата(z-END @ 10.3.2006, 13:17 Найти цитируемый пост)
а без парсинга можно как-нить организовать...

Посмотри http://www.sql.ru/faq/faq_topic.aspx?fid=167 может найдешь что-то нужное.

Автор: DDX 10.3.2006, 13:22
z-END,
насколько я помню, в акцессе даты надо заключать в #
то есть, between #3/10/2006# and #3/11/2006#

Автор: z-END 10.3.2006, 15:31
Пасиб всем=)
недумал что Access такой больной на голову и стандартные (даже для почти родного MS SQL) ему ненравятсяsmile

Автор: DDX 10.3.2006, 16:15
z-END,
тут не думать надо, а JetSQL40.chm читать- крайне полезная весчь при работе с акцессом smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)