Delphi - Delphi 7 + БД MS Access: выборка по дате

Ответить
Аватара пользователя
lunny

Delphi - Delphi 7 + БД MS Access: выборка по дате

Сообщение lunny »

Здравствуйте все. Исходные данные:

1. БД на MS Access

2. Оболочка на Delphi7



Вопрос: как при запросе сделать правильную выборку по датам? вот кусок кода:



begin

ftime:=AnsiReplaceStr(datetostr(datetime1.Date),'.','/');

ttime:=AnsiReplaceStr(datetostr(datetime2.Date),'.','/');



if radiobutton6.Checked=true then time:=' and c.date between #'+ftime+'# and #'+ttime+'#';

if radiobutton7.Checked=true then time:=' and l.date between #'+ftime+'# and #'+ttime+'#';

end else time:='' ;

// параметр поиска

search:='%'+edit1.Text+'%';

data.adoq1.Active:=false;

data.ADOQ1.SQL.Clear;

//--------------

if radiobutton1.Checked then

// поиск по номеру договора

data.ADOQ1.SQL.Add('SELECT distinct c.status, c.date, c.contract,c.name, c.id from contracts c INNER JOIN location l ON c.id = l.contracts_id WHERE c.city_id like '+city+' and c.contract like :search'+time)



Так вот: в таком варианте поиск с учетом даты будет неверным! Т.е.:

при ftime=1 февраля 2006 и ttime=5 апреля 2006 запрос выбирет все записи с 2 января по 4 мая 2006 года, причем если написать в ftime=31 января и ttime=31 апреля, то выбор будет верным! непойму где здесь загвоздка?! Про американский стандарт знаю, но здесь он не причем.
Аватара пользователя
XCodeR

Re: Delphi - Delphi 7 + БД MS Access: выборка по дате

Сообщение XCodeR »

читайте help к Accsess'у там есть подобное.



лично я вообще использовал tmestamp. Имхо, удобнее.
Ответить

Вернуться в «Программирование и базы данных»