SQL Server语言 - 如何比较 SQL 日期时间和 C# 日期时间



这源于我之前的问题

我在 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

相关内容

  • 没有找到相关文章

最新更新