在 TFDTable.Filter 表达式中使用时找不到 DATETIME 函数

DATETIME function not found when used in TFDTable.Filter expression

我正在使用带有 SQLite 驱动程序的 FireDAC。 (Delphi 东京 10.2.3)

在查询表达式中使用 DATETIME 效果很好:

  with Query1 do
  begin
    Close;
    SQL.Text := 'select DATETIME(start_time) from times where ' +
      'DATETIME(start_time) >= DATETIME("2019-02-01 00:00:00")';
    Open;
    ....
  end;  

但是,如果我尝试将类似的表达式分配给 TFDTable.Filter:

tblTimes.Filter := 'DATETIME(start_time) >= DATETIME("2019-02-01 00:00:00")';
tblTimes.Filtered := True;

导致此错误:

[FireDAC][Stan][Eval]-100. Column or function [DATETIME] is not found. Hint: if the name is a function name, then add FireDAC.Stan.ExprFuncs to uses clause

注意:FireDAC.Stan.ExprFuncs 已经在使用子句

怎么了?这样的表达式可以用在 Filter 子句中吗(在 D7 中使用 aducom 组件对我来说效果很好)?

试试这个:

tblTimes.Filter := 'start_time >= {dt 2019-02-01 00:00:00}';
tblTimes.Filtered := True;

请阅读以下内容: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Preprocessing_Command_Text_(FireDAC)