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