【EF】从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值。 语句已终止。

问题:

从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值。 语句已终止。

 

分析:

EF使用6.3版本

数据库最初用SqlServer2008版本创建,但日期类型都是用datetime

 

EF会把C#的DateTime类型转换为SqlServer的datetime2,由于datetime2类型的精度比datetime类型的精度大,datetime2转为datetime报错

 

解决:

会报错的写法

case.CreatedDate = DateTime.Now;

解决

DateTime now = DateTime.Now;
case.CreatedDate = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, now.Millisecond);


另一个奇怪的问题:按照上面的解决方法修改后,再修改为DateTime.Now时却不报错了,真不懂

 

参考:

https://www.cnblogs.com/plwang1990/articles/2025334.html

 

相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页