SqlDateTime溢出该怎么解决_MsSql

错误出现:导入数据时出现“SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间。”
出现这种问题多半是因为你插入或者更新数据库时datetime字段值为空默认插入0001年01月01日造成datetime类型溢出。

原因分析:

关于DateTime,在将DateTime类型,插入到数据库的时候,最容易出现的一种错误:“SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间”原因是我们在取DateTime.MinValue的值,并插入到数据库的时候,DateTime.MinValue值范围和数据库DateTime类型数据范围不一致造成的。数据库中,DateTime类型字段,最小值1/1/1753 12:00:00,而.NET Framework中,DateTime类型,最小值为1/1/0001 0:00:00,显然,超出了Sql的值的最小范围,导致数据溢出的错误。

解决方法:

使用System.Data.SqlTypes.SqlDateTime.MinValue替代System.DateTime类型,这样SqlDateTime的MinValue和Sql中DateTime的范围吻合,就不会再出现以上的错误了。

但是如果直接将System.Data.SqlTypes.SqlDateTime.MinValue 赋值给 System.DateTime类型的变量会出现如下错误:错误 86 无法将类型“System.Data.SqlTypes.SqlDateTime”隐式转换为“System.DateTime”。存在一个显式转换(是否缺少强制转换?) 我们可以采用Convert.ToDateTime来进行强制转换。

附:SQLServer数据库的DateTime默认值为 1900/1/1 00:00:00,如果插入null值,会默认为1900/1/1 00:00:00。

时间: 2024-09-10 12:24:59

SqlDateTime溢出该怎么解决_MsSql的相关文章

SqlDateTime溢出类错误解决

错误: "SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间." 出现这种问题多半是因为你插入或者更新数据库时datetime字段值为空默认插入0001年01月01日造成datetime类型溢出. 原因: 关于DateTime,在将DateTime类型,插入到数据库的时候,最容易出现的一种错误:"SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 12/31/

SqlDateTime溢出该怎么解决

错误出现:导入数据时出现"SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间." 出现这种问题多半是因为你插入或者更新数据库时datetime字段值为空默认插入0001年01月01日造成datetime类型溢出. 原因分析: 关于DateTime,在将DateTime类型,插入到数据库的时候,最容易出现的一种错误:"SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 A

SqlDateTime 溢出

问题描述 我在添加操作时老是SqlDateTime溢出我用的是dateTimePicker哪位大侠可以帮我在线等 解决方案 解决方案二:你肯定是没有给那个字段赋值解决方案三:就是...解决方案四:也许楼上两位高手的解释是正确的,就是没有什么合理的说明!期待正解的出现.解决方案五:输入错误了吧SQL里面的时间必须介于1/1/175312:00:00AM和12/31/9999之间解决方案六:空字符串无法转换为datetime解决方案七:@lz:支持5楼高手的正解,可能是由于SqlDataTime支持

关于 SqlDateTime 溢出

大家好,我是阿牛曾,IT人员一枚 第一次写博客,原因是动手解决了一个小Bug,虽然很小不过很有纪念意义,哈哈 出现错误: 提示 "SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间" 原因分析: 查阅了一些资料,原来在数据库中DateTime类型的字段最小值为1/1/1753 12:00:00,而.NET Framework框架中,DateTime类型的最小值为1/1/0001 0:00:00,超出了

不停的用simpleadapter加载更新gridview导致内存溢出,怎么解决

问题描述 不停的用simpleadapter加载更新gridview导致内存溢出,怎么解决 public class Myragment extends Fragment { private GridView grid; ArrayList> arraylist = null; int[] temp = new int[] {R.id.cell}; String[] temp1 = new String[] { "cell" }; MyHandler handler = new

有关tomcat内存溢出的完美解决方法_java

tomcat内存溢出设置JAVA_OPTS 答案1 设置Tomcat启动的初始内存 其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4.可以利用JVM提供的-Xmn -Xms -Xmx等选项可 进行设置 三.实例,以下给出1G内存环境下java jvm 的参数设置参考: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -D

[紧急求助]使用Axis2做成的Web Service上传文件,文件超过100M时,内存溢出,求解决办法

问题描述 使用Axis2做成的WebService上传文件,文件超过100M时,内存溢出,求解决办法JVM的缓存已经设置的足够大了,修改缓存的方法不可行请提供其他方法或者是Axis2对上传文件的大小有限制 解决方案 解决方案二:怎么没有人回复阿解决方案三:崩溃了,怎么没有人回复阿

“文件共享锁定数溢出” 原因及解决方法

解决 Access数据库,同时操作大量记录(9500条以上)时报错. 错误提示: Microsoft JET Database Engine 错误 '80040e21' 文件共享锁定数溢出.(Error 3052) 解决办法: 修改注册表.[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4.0]"MaxLocksPerFile"=dword:05f5e0ff将MaxLocksPerFile默认的十进制值9500改大即

关于ASP中堆栈溢出错误的解决

在执行ASP程序中出现"堆栈溢出"等类似字的错误. 症状可能发生出处:   提交表单处,数组内存分配及变量内存分配等 错误产生原因:   Win2K中的默认堆栈只有64K,如果ASP程序对堆栈的使用超过了这个值, 就会产生溢出的错误. 错误分析:   在我们提交表单时, 如果提交的某个字段超过了64K,在用Request请求数据时就会产生溢出错误,而不管是否是把内容直接给数据库的RecordSet对象还是直接变量. 解决方法:   可以使用组件来完成这些功能,使用组件其实就辟开了使用A