如何仅使用日期而不是时间来比较SQL Server日期时间?

时间:2013-12-12 18:36:37

标签: sql-server datetime sql-server-2012

我喜欢在我加入时比较2个日期:

    a.requestdate = b.alertDate

但我不想花时间考虑。就在约会。

想知道最好的方法是什么。我正在使用SQL Server 2012(t-sql)

4 个答案:

答案 0 :(得分:1)

或者您可以将字段投射到日期.....但我更喜欢@ ravindra的解决方案。

CAST(DateField1 AS DATE) = CAST(DateField2 AS DATE)

答案 1 :(得分:0)

在where where条件下,您可以使用datediff这样的功能。

datediff(day, a.requestdate, b.alertdate) = 0

答案 2 :(得分:0)

简单,如果使用Sql 2008或更高版本

Convert(date,requestdate) = Convert(date,alertdate)

答案 3 :(得分:0)

如果您要加入它,效率最高的可能是创建带有日期的索引计算列,然后加入它们。喜欢的东西;

CREATE TABLE test (
  id INT,
  request_datetime DATETIME,
  request_date AS CAST(request_datetime AS DATE)
);

CREATE INDEX d_ix ON test(request_date);

这将允许联接在索引上使用完全匹配,事情应该运行得更快。