gpt4 book ai didi

c# - 将 datetime2 数据类型转换为 datetime 数据类型会导致值超出范围

转载 作者:IT王子 更新时间:2023-10-29 03:27:58 28 4
gpt4 key购买 nike

我有一个包含 5 列的数据表,其中一行正在填充数据,然后通过事务保存到数据库中。

保存时返回错误:

The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value

这意味着,正如所读的那样,我的数据表具有 DateTime2 类型,而我的数据库具有 DateTime 类型;这是错误的。

日期列设置为 DateTime,如下所示:

new DataColumn("myDate", Type.GetType("System.DateTime"))

问题

这可以在代码中解决还是必须在数据库级别进行更改?

最佳答案

简答

如果您没有为 DateTime 字段初始化一个值,就会发生这种情况;该字段不接受 NULL 值,并且它是一个值类型,因此将使用不可为 null 的 DateTime 类型的默认值。

设置值对我来说是固定的!

长答案

default(DateTime) 的值为 DateTime.MinValue(或 new DateTime(1, 1, 1) 或 01/01/0001),这不是有效的 SQL datetime 值。

SQL Server 日期时间的最低有效值为 01/01/1753由于它使用公历。但是,SQL Server DateTime2 支持从 01/01/0001 开始的日期。 Entity Framework 默认使用 DateTime2 表示日期,因此生成的 SQL 会隐式地将生成的 DateTime2 值强制转换为 SQL Server 端的 DateTime 值。

关于c# - 将 datetime2 数据类型转换为 datetime 数据类型会导致值超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1331779/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com