c# - SqlDateTime 溢出,但我想要 NULL 或 MinValue

标签 c# datetime sqldatetime

在这个项目中,我正在跟踪创建、编辑和最终处理某些内容的时间。我为此设置了三个 DateTime 字段。下面的代码是我创建记录时的代码。

newsArchive.CreateDateTime = DateTime.Now;
newsArchive.ModifyDateTime = DateTime.MinValue;
newsArchive.SendDateTime = DateTime.MinValue;
naRepository.Add(newsArchive);
naRepository.Save();

我收到“SqlDateTime 溢出。必须在 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。”当我尝试添加它时。我知道我不能发送 NULL。你会如何处理?

我正在使用 Linq2SQL 来处理这个。

最佳答案

为什么不能发送空值? AFAIK,Linq2SQL 支持可为空的值类型;您只需要 DB 中的列可以为空,否则 L2S 不会将 DAO 投影为可以为空的类型。

您可以使用 (DateTime)(SqlDateTime.MinValue) 代替 DateTime.MinValue。这将使用最小的 SQL 兼容日期时间值,显式转换为 DateTime。

虽然 SqlDateTime 和 DateTime 实际上都将时间存储为 UInt64“Ticks”值,但这两种类型之间的区别在于 SQL Server 使用不同的纪元(值为零)和不同的分辨率(1“tick”在几分之一秒)比 CLR 的 DateTime。

关于c# - SqlDateTime 溢出,但我想要 NULL 或 MinValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4673509/

相关文章:

MySQL按日期大间隔查询

c# - 为什么只读结构上的突变不会中断?

c# - 正则表达式 - 匹配捕获组中的第一个和最后一个字符

c# - control.BeginInvoke() 与 Dispatcher 与 SynchronizationContext 与 .. - 可靠性

c#DateTime.将时间重置为 0

mysql - 日期条件在 MySQL 查询中未产生任何结果

c# - 无法加载文件 Newtonsoft Json

c# - 将 DateTime 轴数据转换回 DateTime

Python:在两个日期之间创建numpy数组

sql - 如何将小时、分钟和秒添加到 SQL 中的日期时间列?