从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
Posted 穿拖鞋的thread
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值相关的知识,希望对你有一定的参考价值。
在.net core项目中,使用EF core 做数据持久化,做新增的时候,遇到一个事件类型问题的错误。报错 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
实体属性的类型是datetime 数据库类型也是datetime 怎么就出现个datetime2类型呢?
原因:sqlserver 事件范围1753 年 1 月 1 日到 9999 年 12 月 31 日。在使用ef新增时没有被复制,就被默认[0001/xxxx]的一个默认时间,这时候这个时间就不再这个范围,所以EF就默认转换成datetime2类型,所以insert到数据库时就出现这个错,因为你数据类型时datatime 型。
解决办法:
1.数据库类型更改datetime2类型
2.实体设置可空类型,数据库字段类型可为空。
后面需要测试,如果实体datetime 类型有值,数据库datetime类型,ef会不会把datetime转datetime2类型(datetime2比datetime时间更精确)?后面遇到这样的在记录!
以上是关于从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值的主要内容,如果未能解决你的问题,请参考以下文章
从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值。
解决从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值的问题
从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
将 datetime2 数据类型转换为 datetime 数据错误