Как получить записей за текущий день?

ularsoft
Дата: 18.10.2019 09:14:43
Здравствуйте!

Имеется таблица CDok:
cDate cKod cName
15.09.2019 18:25:45 0 Компьютер
15.09.2019 18:29:23 0 Мышь
20.09.2019 10:02:31 0 Клавиатура
18.10.2019 10:18:53 0 Коврик
18.10.2019 10:38:43 0 Монитор

Написал следующий запрос для получения всех записей:
    qCDok.Close;
    qCDok.SQL.Clear;
    qCDok.SQL.Add('select * from CDok);
    qCDok.Open;

Подскажите, пожалуйста, как мне получить информацию за текущий день? Заранее благодарен.
wadman
Дата: 18.10.2019 09:37:06
ularsoft
qCDok.SQL.Add('select * from CDok);

Не компилируется. :(

http://sql-ex.ru/ - там много полезной информации по sql
Gerasimenko
Дата: 18.10.2019 09:40:33
ularsoft,

var
 d:TDadeTime;

begin
 d:=Trunc(Now);
...
 qCDok.SQL.Add('select * from CDok where cDate between :d1 and :d2');
 

Тип cDate не известен, но будем полагать,что это дата. Если нет, то в запросе нужно преобразовать к дате.
ularsoft
Дата: 18.10.2019 10:22:45
Gerasimenko
var
 d:TDadeTime;
begin
 d:=Trunc(Now);
...
 qCDok.SQL.Add('select * from CDok where cDate between :d1 and :d2');

Тип cDate - Дата/Время
Но, с чем связан d с :d1 and :d2 ?
ularsoft
Дата: 18.10.2019 10:27:22
Из таблицы CDok:
cDate cKod cName
15.09.2019 18:25:45 0 Компьютер
15.09.2019 18:29:23 0 Мышь
20.09.2019 10:02:31 0 Клавиатура
18.10.2019 10:18:53 0 Коврик
18.10.2019 10:38:43 0 Монитор

Я должен получить следующие данные за текущий день:
cDate cKod cName
18.10.2019 10:18:53 0 Коврик
18.10.2019 10:38:43 0 Монитор
goldmi45
Дата: 18.10.2019 10:30:09
var
 d:TDadeTime;
begin
 d:=Trunc(Now);
...
 qCDok.SQL.Add('select * from CDok where cDate between :d1 and :d2');
 qCDok.ParamByName('d1').AsDateTime := d;
 qCDok.ParamByName('d2').AsDateTime := d + 1; //Если для ваших целей подходит, т.е. нет записей от 00:00:00.
 qCDok.Open;
end;
Gerasimenko
Дата: 18.10.2019 10:30:15
ularsoft
Gerasimenko
var
 d:TDadeTime;
begin
 d:=Trunc(Now);
...
 qCDok.SQL.Add('select * from CDok where cDate between :d1 and :d2');

Тип cDate - Дата/Время
Но, с чем связан d с :d1 and :d2 ?


d1 := d
d2 :=d+1
ularsoft
Дата: 18.10.2019 10:41:12
Вау-у-у круто ребята!
DimaBr
Дата: 18.10.2019 10:51:43
qCDok.SQL.Text := 'select * from CDok where convert(datetime, cDate,112)=:S;
qCDok.Params[0].Value := FormatDateTime('yyyymmdd',Date());
wadman
Дата: 18.10.2019 10:56:44
DimaBr
qCDok.SQL.Text := 'select * from CDok where convert(datetime, cDate,112)=:S;
qCDok.Params[0].Value := FormatDateTime('yyyymmdd',Date());

Так индексы не зацепятся.