![]() |
Delphi 7 + БД MS Access: выборка по дате
Здравствуйте все. Исходные данные:
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 апреля, то выбор будет верным! непойму где здесь загвоздка?! Про американский стандарт знаю, но здесь он не причем. |
читайте help к Accsess'у там есть подобное.
лично я вообще использовал tmestamp. Имхо, удобнее. |
Время: 00:11. |
Время: 00:11.
© OSzone.net 2001-