SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59

简介:
SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间
2009年10月10日 星期六 17:11

错误提示:“SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间。” 
出现场景:用ASP.NET制作某商业网站的注册功能时,调用写好的存储过程出错

原因:

传给数据库(在这里我是传给存储过程)的时间类型的值为NULL

这里的NULL指的是程序代码里面的null,大多数出现这种情况的情景是:在程序里面定义了一个时间类型的变量,没有给赋值,就传给数据库(或存储过程了)。这时这个变量的值默认是赋成了01年01月01日。由于在数据库中DateTime类型字段,最小值1/1/1753 12:00:00,而.NET Framework中,DateTime类型,最小值为1/1/0001 0:00:00,显然,超出了Sql的值的最小范围,导致数据溢出的错误。

这种错误还容易发现,更恶心的是我遇到的情况:

我是用sqlParameter传给存储过程需要的值,然后存储过程用insert语句等实现注册功能。有一些数据是不需要代码给传值的(如用sql里面的getdate可以获取当前时间,再如固定的值)。但我的代码里面定义了所有的sqlparameter,多出来的sqlparameter虽然在数据库中没有参数接受,但如果传进来一个有问题的datetime类型,同样会报错。

分类:  SQL


本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2012/03/16/2400556.html,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
存储 安全 NoSQL
driftingblues9 - 溢出ASLR(内存地址随机化机制)
driftingblues9 - 溢出ASLR(内存地址随机化机制)
64 1
|
9月前
|
安全 编译器 C语言
PWN–整数溢出
PWN–整数溢出
81 3
溢出行为
在 Julia 中,超出类型最大值的计算会导致环绕行为,如 `typemax(Int64)` 加 1 结果变为 `typemin(Int64)`,显示了模算术特性。为了避免溢出错误,需检查边界或使用 BigInt 进行任意精度运算。例如,`10^19` 溢出,而 `big(10)^19` 则正确计算为 `10000000000000000000`。
|
10月前
|
存储
设计循环队列,解决假溢出问题
设计循环队列,解决假溢出问题
|
10月前
|
缓存
非连续内存分配
非连续内存分配
63 0
|
10月前
|
JavaScript Unix Java
到了2038年时间戳溢出了怎么办?
我经常自嘲,自己写的程序运行不超过3年,因为大部分项目方就早早跑路了。大多数项目上线后,你跟这个项目就再无瓜葛,关于时间你只需要保证时区正确就不会有太大问题,哈哈。 但是今天我想认真对待时间这个问题,作为一个库作者或基础软件作者,就需要考虑下游项目万一因为你处理时间不当而造成困扰,影响范围就比较广了。
105 0
到了2038年时间戳溢出了怎么办?
|
存储 Java 程序员
【内存泄漏与溢出】
【内存泄漏与溢出】
|
存储 编译器 C++
栈又溢出了
栈又溢出了
|
编译器
整数溢出机制 C
整数溢出机制 C
323 0
C++二分有关溢出的问题
C++二分有关溢出的问题
110 0
C++二分有关溢出的问题