我正在使用Delphi7和泰坦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;问题是过滤结果是不正确的。它将返回不符合筛选条件的之前的记录。
发布于 2012-07-17 20:02:56
Table1.Filter过滤TDataSet中不是btrieve/pervasive格式的数据。
问题是字符串格式的日期...必须使用格式YYYY-MM-DD,而不是DD-MM-YYYY,因为字符串比较。
在字符串比较中,17-06-2012大于16-07-2012,(17>16)
发布于 2012-07-15 21:44:49
从外观上看,您是在比较字符串,而不是日期。
发布于 2012-07-16 00:35:03
您使用的是什么版本的PSQL?UPDATEDON字段是否定义为Btrieve数据库中的时间戳?如果是时间戳,则值以8字节无符号值存储,表示自公历、协调世界时(UTC)中自0001年1月1日以来的7秒(10^-7秒)。它不是以字符串形式存储的。
Btrieve / PSQL以'YYYY-MM-DD‘格式存储日期。
WHat来自UPDATEDON字段的值看起来像吗?要将其用作过滤器,您需要确保过滤器值看起来是相同的。
https://stackoverflow.com/questions/11491650
复制相似问题