Sql 数据不基于日期显示

Sql 数据不基于日期显示,sql,date,foxpro,visual-foxpro,Sql,Date,Foxpro,Visual Foxpro,我是一所大学的学生雇员,我为我们的设施部门做应用程序开发。我们有几个用VisualFoxPro编写的内部应用程序(是的,我知道它不再受支持),我帮助维护它们。最近,我们发现我们的一个表存在按日期筛选的问题。如果查看该表,所有数据都显示良好。但是,如果对其运行SELECT查询,查找某个日期范围内的所有记录,就会发生奇怪的事情 如果开始日期请尝试以下操作: SELECT * FROM Purchreq WHERE Log_date >= CTOD('12/13/2014') 正如塔玛所言,这

我是一所大学的学生雇员,我为我们的设施部门做应用程序开发。我们有几个用VisualFoxPro编写的内部应用程序(是的,我知道它不再受支持),我帮助维护它们。最近,我们发现我们的一个表存在按日期筛选的问题。如果查看该表,所有数据都显示良好。但是,如果对其运行SELECT查询,查找某个日期范围内的所有记录,就会发生奇怪的事情

如果开始日期请尝试以下操作:

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

正如塔玛所言,这很可能是一个腐败的指数。 从命令窗口运行“验证数据库恢复”没有帮助。 我们之前为修复损坏的索引而编写的程序也没有帮助,尽管两个程序都报告运行成功

我们采取了更积极的步骤,从表中删除了索引。这给了我们一个关于.DTC文件的错误,但是索引消失了,SELECT按预期工作

我们再次添加了索引,得到了相同的.DCT文件错误,并且SELECT返回到不工作状态

此时,我们研究了.DCT文件,发现最后一次更新的日期是一周前,而不是今天,就像与数据库相关的所有其他文件一样

我们使用了foxpros的cleanup数据库命令,然后再次添加索引,没有.DCT错误,SELECT工作得很好


感谢您的帮助和建议。

您如何设置查询中的日期格式?您使用的是哪一个数据库。。。是sql Server吗?你能发布实际的查询吗?这是一个foxpro数据库。当我测试foxpro的
Date(nYear,nMonth,nDay)
以匹配表中日期字段的格式时,我正在使用它。我99%确定问题不在于查询,但我在分析它时一直在使用(基本上)
SELECT*FROM Purchreq WHERE Log\u date>=date(2014,12,13)
。我用了很多不同的方法来包含结束日期和测试不同的范围。报表的实际视图使用的查询略有不同,但WHERE子句的设置相同。我怀疑您的索引已损坏。重新创建此表的标记,或者至少是开始日期字段上的标记。没有区别。指定明确日期的最佳方法是{^2014-12-13}