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

问题描述 投票:1回答:1

我正在使用FireDAC和SQLite驱动程序。 (德尔福东京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已经在uses子句中

怎么了?可以在Filter子句中使用这样的表达式(它在我使用D7中的aducom组件时工作得很好)?

sqlite delphi firedac
1个回答
2
投票

试试这个:

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)

© www.soinside.com 2019 - 2024. All rights reserved.