这源于我之前的问题
我在 c# 中有一个日期时间。
然后将此值插入到数据库中。
之后,选择此值并比较该日期与开始时相同。
最好的方法是什么?由于 SQL 日期时间具有不同的刻度,因此第一步中的日期时间将与 SQL 日期时间(row["MyDate"])不同。
如何比较它们?
从另一个中减去一个,并检查结果 TimeSpan 的刻度是否在可接受的限度内,以获得即时报价长度的差异
SqlDateTime
结构。
DateTime now = DateTime.Now;
SqlDateTime sqlNow = new SqlDateTime(now);
bool equal = now == sqlNow.Value; // false
因此,如果您有DateTime
并想知道它是否等于 DB- DateTime
请使用:
Assert.Equal(dbEndTime, new SqlDateTime(endTime).Value); // true
SqlDateTime
:
表示从 1 月 1 日开始值的日期和时间数据, 1753年到9999年12月31日的精度为3.33毫秒 存储在数据库中或从数据库中检索。SqlDateTime 结构具有 与其相应的 .NET 不同的基础数据结构 框架类型,日期时间,可以表示介于 12:00:00 AM 1/1/0001 和 11:59:59 PM 12/31/9999,精度为 100 纳秒。SqlDateTime 实际上存储相对差异 到 1900 年 1 月 1 日上午 00:00:00。因此,从"00:00:00 AM"转换 1/1/1900"为整数将返回 0。
如果你忽略毫秒差异,你可以试试这个
Select * from MyTable DATEADD(ms, -DATEPART(ms, endTime), endTime) = @value