关于SqlDateTime溢出的问题

在项目中统一采用UTC时间时,遇到SqlDateTime.MinValue转换后导致的SqlDateTime溢出错误。该问题源于数据库dateTime类型的最小值限制,当.Net Framework中的DateTime最小值转换为UTC后超出此限制。解决办法是在与数据库交互时使用SqlDateTime而非DateTime。
摘要由CSDN通过智能技术生成

问题: 

  项目中为了在时间上保持一致性,将所有时间都转化为了UTC时间。

  其中有一段SqlDateTime.MinValue的代码,由于疏忽将其转为UTC时间后导致了

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

原因: 

  数据库中的dateTime类型,最小值是 1/11753 12:00:00,而当SqlDateTime.MinValue转换为UTC的时间后,超出了这个最小值范围。所以导致了这 个错误。

总结: 

  在.NET FrameWork中,DateTime类型的最小值是1/1/0001 0:00:00,而这个值很明显是超过了数据库的dateTime类型的限制。所以在和数据库操作相关的字段要使用SqlDateTime类型,而不应该使用DateTime。

转载于:https://www.cnblogs.com/MonkeyKingK/p/4954987.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值