1

请看下面的变量声明:

dim DateTest As Date = DateValue("0:0:0")

DateTest 实际上是用什么初始化的。如果我单步执行代码,则会显示:#12:00:00 AM#。如果我尝试将此输入数据库(日期时间字段),则会引发 SQLTypeException,其中显示:“SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59 之间:晚上 59 点。”

DateValue("0:0:0") 是否使用日期值初始化日期变量?

4

2 回答 2

3

显然它返回Date.MinValue的是 的最小可能值Date。该常量的值相当于 00:00:00.0000000, 0001 年 1 月 1 日。由于 0001 年小于 1753 年,因此数据库抛出异常。

我不知道DateValue,但我会使用 .NET 方法而不是旧的 VB 函数,例如Date.Parse. 例如:

Dim DateTest As Date = Date.Parse("2008-05-01")
于 2012-12-04T17:08:03.427 回答
2

啊,.net 中 datetime 字段的 min 远小于 Sql Server 中 datetime 字段的 min date。如果您想存储匹配的值,我建议在 sql server 中使用 DateTime2(7) 数据类型。

请参阅以下有关最小日期时间的文章:

tsql 最小日期时间 http://technet.microsoft.com/en-us/library/ms187819.aspx

.net 最小日期时间 http://msdn.microsoft.com/en-us/library/system.datetime.minvalue.aspx

tsql datetime2 描述: http ://technet.microsoft.com/en-us/library/bb677335.aspx

于 2012-12-04T17:07:00.900 回答