Как правильно передавать параметры в запрос
В бд(Firebird 3) данные хранятся как timestamp. Надо вытащить записи по интервалу времени в коротком формате,например, продажи с 1.08.2020 по 2.08.2020. Компонент datetimepicker :
SQL:
select sum(Summa),users.user_name
from table1,users
where (table1dt between :date1 and :date2) and
(table1.user_id=users.user_id)
group by users.user_name
Delphi:
Form1.Quser.Close;
Form1.qUser.ParamByName('date1').AsDate:=Form1.DateTimePicker1.Date;
Form1.qUser.ParamByName('date2').AsDate:=Form1.DateTimePicker2.Date;
Form1.qUser.open;
Как выдно на скриншоте значение комонента DateTimePicker1 в short формате(01.08.2020),а в параметре передаётся почему-то в длинном формате(01.08.2020 16:49:47), хотя в object inspector параметры :date, :date2 имеют тип данных date а не datetime.
в бд Firebird:
Ответы (1 шт):
Автор решения: Kromster
→ Ссылка
TDate / TDateTime / TTime - синонимы, и, по факту, являются типом Double (в целой части лежат дни, в дробной - доля дня).
Если вам нужно передавать дату, то приводите к ней вот так - DateOf(DateTimePicker1.Date).

