数据不显示基于日期

Data not displaying based on dates

我是一所大学的学生员工,我为我们的设施部门开发应用程序。我们有几个用 Visual FoxPro 编写的内部应用程序(是的,我知道它不再受支持),我帮助维护。最近我们发现我们的 table 之一在按日期过滤时出现问题。如果您查看 table,所有数据都显示正常。但是,如果您 运行 对其进行 SELECT 查询,查找日期范围内的所有记录,奇怪的事情就会开始发生。

如果开始日期<= 2014/12/13,结束日期为2015年或没有结束日期,则结果集不包含2014/12/13之后的任何记录。

如果开始日期 <= 2014/12/14,结束日期在 2015 年或没有结束日期,结果集将包含正确的记录。

视图以及在命令 window.

中执行独立 SELECT 语句时也会表现出相同的行为

我今天早上发现,如果我在命令 window 中使用 SET FILTER TO 命令,我会得到正确的结果。

有没有其他人经历过类似的事情?

试试这个:

SELECT * FROM Purchreq WHERE Log_date >= CTOD('12/13/2014')

正如 Tamar 所建议的,它很可能是损坏的索引。 运行 从命令 window 验证数据库恢复没有帮助。 我们之前为修复损坏的索引而编写的程序也没有帮助,尽管两者都报告成功 运行。

我们采取了更激进的措施,从 table 中删除了索引。这给了我们关于 .DTC 文件的错误,但索引不见了,SELECT 按预期工作。

我们再次添加了索引,遇到了同样的 .DCT 文件错误,SELECT 又回到了不工作的状态。

此时我们调查了 .DCT 文件并意识到最后更新日期是一周前,而不是今天,就像与数据库关联的所有其他文件一样。

我们使用了 foxpros 清理数据库命令,然后再次添加了索引,没有出现 .DCT 错误,SELECT 运行良好。

感谢您的所有帮助和建议。