【问题标题】:Filtering Dates in FireDac TTable在 FireDac TTable 中过滤日期
【发布时间】:2015-01-20 22:21:17
【问题描述】:

我在使用 FireDac 中的 TTable 过滤日期字段时遇到问题。

MySQL/InnoDB 中的数据库。该字段的类型为 Date。

我用来设置过滤器的代码是

Filter := 'date = ' + QuotedStr(FormatDateTime('mm/dd/yyyy', Date));
Filtered := True; 

每次我在设置过滤器时遇到错误:“EConvertError with message 'Could not parse SQL TimeStamp string'”或过滤器无法找到任何记录。

以上格式适用于我当前的区域设置。我也试过'yyyy-mm-dd'。我已经尝试过加引号和不加引号。

【问题讨论】:

    标签: mysql delphi date firedac


    【解决方案1】:

    所以,我花了三个小时在这个问题上,并在我提出问题后立即找到答案。使用Preprocessor Commands

    Filter := 'date = {d ' + (FormatDateTime('yyyy-mm-dd', Date))+'}';
    

    【讨论】:

    • FireDAC 预处理器命令可用于生成 SQL 代码,同时保持对 RDBMS 的不可知性。过滤器应该使用标准格式,可能类似于标准 SQL,所以我认为你很幸运;)
    猜你喜欢
    • 2016-03-17
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 2017-03-12
    • 2012-11-01
    相关资源
    最近更新 更多