SQL Server 2000 向 ASP.Net 应用程序报告错误值

SQL Server 2000 向 ASP.Net 应用程序报告错误值

我有一个 SQL Server 2000 (8.0.2039) 实例,其中包含一个相当简单的表。最近有用户抱怨我编写的一个应用程序对数据库中的某些日期返回了错误的值。当我直接通过 Server Management Studio 查询表时,它会返回正确的值,但是来自我的应用程序的相同查询会报告错误的值,但仅限于几个日期。

我检查过代码,它很稳定。如果错误出在代码中,则报告的所有日期都应该是错误的。我还在相同的测试数据库上运行了代码,并且所有报告都正确。我相信问题可能出在 SQL 实例本身,这就是我在 Server Fault 中发帖的原因。

我的问题是,有人听说过通过 Web 应用程序查询时数据库会报告错误(不正确)的日期值吗?应该注意的是,此特定服务器曾经在集群清理运行后手动重建过。

答案1

任何与日期有关的问题通常都与地点和地区有关。

也就是说,“05/02/2011” 是什么:2 月 5 日还是 3 月 2 日?

这种情况通常发生在日期存储为字符串而不是日期时,或者本地客户端设置不同(比如,有人说的是美式英语,而您期望的是英式英语)。

你不会得到错误的日期有时

答案2

这不是您的问题,但我会将其抛出,以便将来遇到此问题的人能够看到。使用 SQL Server 2000,可能会在日期时间列中存储无效日期。我见过包含三位数月份或三位数日期等的日期。有几个错误会导致数据损坏,但在 SQL Server 2000 下 DBCC CHECKDB 无法捕获这些错误。如果/当数据库更新到 SQL Server 2005 时,这些问题将被捕获并修复,但在 SQL Server 2000 下,您需要手动修复日期行或只能忍受它们。

相关内容