首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DateTime与SqlDateTime.MinValue的比较

DateTime与SqlDateTime.MinValue的比较
EN

Stack Overflow用户
提问于 2016-10-18 17:10:22
回答 2查看 2K关注 0票数 3

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

代码语言:javascript
复制
if (StartDate > SqlDateTime.MinValue)
{
  // some code
}

如果StartDate是

SqlDateTime溢出必须在1/1/1753 12:00上午12:00至12/31/9999 11:59:59下午

只要做一点小小的改变,就可以很容易地解决这个问题:

代码语言:javascript
复制
if (StartDate > SqlDateTime.MinValue.Value)
{
  // some code
}

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

我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-18 17:18:03

.NET本机DateTime类型(具体地说,它的一个结构)包含比SqlDateTime数据类型所能支持的更广泛的可能值。更具体地说,DateTime值可以从01/01/0000到理论的12/31/9999不等。

当编译器试图强迫类型进行比较时,它尝试将一个DateTime值(MinValue.Value)放在SqlDateTime支持的范围之外(在上下文中的值在下面或‘在上下文中’),从而导致溢出。

票数 2
EN

Stack Overflow用户

发布于 2016-10-18 17:19:33

来自MSDN上的SqlDateTime结构

SqlDateTime结构 表示从1753年1月1日至12月31日9999年间的日期和时间数据,其精度为3.33毫秒,存储在数据库中或从数据库中检索。SqlDateTime结构具有与其相应的.NET框架类型DateTime不同的底层数据结构,后者可以表示12:00 AM 1/1/0001和11:59:59 PM 12/31/9999之间的任何时间,精度可达100纳秒。SqlDateTime实际上将相对差异存储到00:00:00 AM 1/1/1900。因此,从"00:00:00 AM 1/1/1900“到整数的转换将返回0。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40114222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档