sql比较两个日期,当使用C#时

时间:2015-02-13 21:27:55

标签: c# sql sql-server

我有问题。使用C#,我从SQL Server中检索日期。 然后我使用相同的日期来尝试检索它所在的行。

不幸的是,这不起作用。原因是SQL Server以毫秒精度存储日期,而C#DateTime仅存储具有第二精度的日期。毫秒部分阻止我选择行。

我们如何处理这种微小的差异?

1 个答案:

答案 0 :(得分:1)

我们试图解决的问题是,当精度损失阻止我们选择正确的行时,我们如何选择行?

我找到的答案是使用SQL函数DATEDIFF(datepart,startdate,enddate)。

SELECT *
FROM Table1
WHERE DATEDIFF (second, SellByDate, SellByDate) = 0

这保证我们选择正确的行,因为:

  1. 日期相同,只有不到一秒的差异。
  2. DATEDIFF会将差异减少到0