малко SQL help pliizzz
2 отговора
152 прегледа
малко SQL help pliizzz
значи искам да филтрирам данните между две дати но немога да съставя правилната SQL команда
ако го направя с числа :
Query1.SQL.Add('select * from xxxx where num between 10 and 20');
става
но когато опитам с дати ми дава мишмаш
полето с датите в таблицата е тип DATE
БД е Парадокс
датите ги зимам с ProfDateTimePicker1.Date
ако го направя с числа :
Query1.SQL.Add('select * from xxxx where num between 10 and 20');
става
но когато опитам с дати ми дава мишмаш
полето с датите в таблицата е тип DATE
БД е Парадокс
датите ги зимам с ProfDateTimePicker1.Date
Ползвай параметри
В такива ситуации е уместно да използваш параметри в заявката. Напиши я така:
Query1.SQL.Text := 'select * from xxxx where yyyy between :date_from and :date_to';
След това можеш да инициализираш стойностите на параметрите по индекс или по име:
Query1.Params[0].AsDateTime := FromDate;
Query1.Params[1].AsDateTime := ToDate;
Ако взимаш датата от DateTimePicker имай предвид, че неговото пропърти Date всъщност връща и час. В такъв случай горните редове ги направи така:
Query1.Params[0].AsDateTime := Trunc(dtpFrom.Date);
Query1.Params[1].AsDateTime := Trunc(dtpTo.Date);
Query1.SQL.Text := 'select * from xxxx where yyyy between :date_from and :date_to';
След това можеш да инициализираш стойностите на параметрите по индекс или по име:
Query1.Params[0].AsDateTime := FromDate;
Query1.Params[1].AsDateTime := ToDate;
Ако взимаш датата от DateTimePicker имай предвид, че неговото пропърти Date всъщност връща и час. В такъв случай горните редове ги направи така:
Query1.Params[0].AsDateTime := Trunc(dtpFrom.Date);
Query1.Params[1].AsDateTime := Trunc(dtpTo.Date);