SqlDateTime 溢出

仅是调试过程中错误,经过查找记录于此。

错误:

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


原因:

关于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的值的最小范围,导致数据溢出的错误。


解决方法:

NUMBER ONE:

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


NUMBER TWO:

在机房收费系统中,我们多半是在为学生上机记录或是老师上机记录中,在登录的同时要写入到我们的教师工作记录或是学生上机记录中,但是我们的

下机时间在最开始赋值的时候是不存在的。系统会自动的为该字段赋初值为00010101日造成datetime类型溢出。

我们可以为实体赋默认的初值1688-6-8 再在下机的时候自动的去更新就行了。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值