Delphi 7, Titan BTrieve Components



我使用Delphi 7和Titan BTrieve打开一个普适表。

它是TtbTable组件。

我正试图在TimeStamp字段上应用过滤器,我的代码如下:

    Date:=InputDate;
    DateString:=FormatDateTime('DD/MM/YYYY HH:NN:SS', InputDate);
    Table1.Filter:='UPDATEDON > '+chr(39)+DAteString+chr(39);
    Table1.Filtered:=True;

问题是筛选结果不正确。它返回在之前的记录。这些记录与筛选条件不匹配。

Table1.Filter,过滤TDataSet中的数据,而不是btrieve/pressive中的数据。

问题是字符串格式的日期。。。您必须使用格式YYYY-MM-DD,而不是DD-MM-YYYY,因为字符串比较。

在字符串比较中,2012年6月17日比2012年7月16日更糟,(17>16)

从外观上看,您比较的是字符串,而不是日期。

您使用的是什么版本的PSQL?UPDATEDON字段是否定义为Btrieve数据库中的时间戳?如果是时间戳,则值存储在8字节无符号值中,表示自公历协调世界时(UTC)0001年1月1日以来的七分之一秒(10^-7秒)。它不是作为字符串存储的。

Btrieve/PSQL以"YYYY-MM-DD"格式存储日期。

UPDATEDON字段中的值是什么样子的?要将其用作筛选器,需要确保筛选器值看起来相同。

相关内容

  • 没有找到相关文章

最新更新