gpt4 book ai didi

c# - 将 DateTime 与 SqlDateTime.MinValue 进行比较

转载 作者:行者123 更新时间:2023-12-05 05:22:34 25 4
gpt4 key购买 nike

当我将 DateTime 变量与 SqlDateTime.MinValue 进行比较时:

if (StartDate > SqlDateTime.MinValue)
{
// some code
}

如果 StartDate 为 < SqlDateTime.MinValue,我会得到以下运行时异常:

SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

这可以很容易地通过一个小的改变来解决:

if (StartDate > SqlDateTime.MinValue.Value)
{
// some code
}

我知道在第一个代码片段中我将苹果与橘子进行比较。我不明白的是异常消息。似乎我正在将 DateTime 值分配给 SqlDateTime 变量。

我错过了什么?

最佳答案

.NET native DateTime 类型(具体而言,它是一种结构)拥有比 SqlDateTime 数据类型所能支持的范围更广的可能值。更具体地说,DateTime 值的范围可以从 01/01/0000 到理论上的 12/31/9999。

当编译器试图强制比较类型时,它会尝试放置一个超出(在上下文中或在上下文中“之前”)SqlDateTime 支持的范围之外的 DateTime 值 (MinValue.Value) - 因此会发生溢出。

关于c# - 将 DateTime 与 SqlDateTime.MinValue 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40114222/

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