Delphi 按日期范围筛选数据库记录

Delphi 按日期范围筛选数据库记录,delphi,delphi-xe2,sybase-asa,Delphi,Delphi Xe2,Sybase Asa,我有一个数据库系统,允许用户创建记录。在将记录过帐到表时,它捕获当前日期和时间 我有一个表单,允许用户过滤/搜索记录 允许筛选记录日期的最佳方法是什么。比如开始日期和结束日期 下面是我在捕获记录的日期时间时所做的操作 FieldByName('logged_dt')。AsDateTime:=now执行此操作的典型方法是使用带参数的SQL和WHERE子句: Query.SQL.Clear; Query.SQL.Add('SELECT ColumnA, ColumnB, DateCol'); Que

我有一个数据库系统,允许用户创建记录。在将记录过帐到表时,它捕获当前日期和时间

我有一个表单,允许用户过滤/搜索记录

允许筛选记录日期的最佳方法是什么。比如开始日期和结束日期

下面是我在捕获记录的日期时间时所做的操作


FieldByName('logged_dt')。AsDateTime:=now

执行此操作的典型方法是使用带参数的SQL和
WHERE
子句:

Query.SQL.Clear;
Query.SQL.Add('SELECT ColumnA, ColumnB, DateCol');
Query.SQL.Add('FROM TableA');
Query.SQL.Add('WHERE DateCol >= :StartDate');
Query.SQL.Add('AND DateCol <= :EndDate');
Query.ParamByName('StartDate').AsDateTime := StartDateYouWant;
Query.ParamByName('EndDate').AsDateTime := EndDateYouWant;
Query.Open;
if Query.IsEmpty then
  ShowMessage('No records found in that range')
else
  // Do whatever with the rows found

由于值的时间部分,我遇到了在和日期时间列之间使用
的问题,并且(根据我自己的经验)使用
=
(GTE)和
是否以文本形式在数据库中存储日期?我编辑了我的问题,我在捕获日期/时间时所做的操作是错误的,我已回滚您的编辑,因为您现在收到的错误消息是另一个问题。在你得到答案后,你不能对这个问题做出重大的改变来改变它的全部含义。如果你现在有一个新问题,创建一个新问题并在那里提问。我已经回答了您在这里提出的问题,即如何按日期范围筛选记录。
Query.SQL.Add('WHERE DateCol BETWEEN :StartDate AND :EndDate');