首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.NET中DateTime的CompareTo()方法有多精确

.NET中DateTime的CompareTo()方法有多精确
EN

Stack Overflow用户
提问于 2012-10-23 07:27:06
回答 2查看 186关注 0票数 0

当调用.NET中DateTime的CompareTo()时,是否将一个DateTime对象上的刻度与另一个对象上的刻度进行比较?这种比较有多精确?我正在从sql数据库中获取datetime2(7)值,并希望确保比较是按节拍进行的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-23 07:31:49

是的,刻度是比较的。这就是Equals在DateTime structure中的实现方式

代码语言:javascript
运行
复制
public bool Equals(DateTime value)
{
    return (this.InternalTicks == value.InternalTicks);
}

InternalTicks返回ulong类型的字段。因此,DateTimes的比较与long类型的比较具有相同的精度。单刻度表示100纳秒。

顺便说一句,数据库可以以不同的精度存储时间-某些精度可能会丢失。但是有一个技巧--你可以将Ticks值保存到数据库中。在这种情况下,您可以在以后还原完全相同的.net DateTime对象。

票数 3
EN

Stack Overflow用户

发布于 2012-10-23 07:32:08

数据库的精度与DateTime对象的精度无关。DateTime对象存储100 of的内部节拍计数。所以这是非常精确的。是的,如果值相差1个刻度,CompareTo将返回false。

但是,datetime字段可能没有以最高精度存储日期(尽管datetime2(7)应该足够精确)。因此,如果您在数据库中存储了两个日期时间,并且它们的间隔非常短,那么您从数据库中返回的值可能是相同的。

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

https://stackoverflow.com/questions/13021437

复制
相关文章

相似问题

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