Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Delphi 7 + БД MS Access: выборка по дате (http://forum.oszone.net/showthread.php?t=84839)

lunny 01-06-2007 14:18 593886

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 апреля, то выбор будет верным! непойму где здесь загвоздка?! Про американский стандарт знаю, но здесь он не причем.

XCodeR 02-06-2007 11:46 594242

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

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


Время: 00:11.

Время: 00:11.
© OSzone.net 2001-