Как правильно передавать параметры в запрос

В бд(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).

→ Ссылка