【发布时间】:2013-12-12 18:36:36
【问题描述】:
我喜欢在加入时比较以下两个日期:
a.requestdate = b.alertDate
但我不想考虑时间。只是日期。
想知道最好的方法是什么。我正在使用 SQL Server 2012 (t-sql)
【问题讨论】:
标签: sql-server datetime sql-server-2012
我喜欢在加入时比较以下两个日期:
a.requestdate = b.alertDate
但我不想考虑时间。只是日期。
想知道最好的方法是什么。我正在使用 SQL Server 2012 (t-sql)
【问题讨论】:
标签: sql-server datetime sql-server-2012
或者您可以将字段转换为日期.....但我更喜欢@ravindra 的解决方案。
CAST(DateField1 AS DATE) = CAST(DateField2 AS DATE)
【讨论】:
在where条件下,可以像这样使用datediff函数。
datediff(day, a.requestdate, b.alertdate) = 0
【讨论】:
简单,如果使用 Sql 2008 或更高版本
Convert(date,requestdate) = Convert(date,alertdate)
【讨论】:
如果要加入它,最有效的方法可能是创建带有日期的索引计算列,然后加入它们。类似的东西;
CREATE TABLE test (
id INT,
request_datetime DATETIME,
request_date AS CAST(request_datetime AS DATE)
);
CREATE INDEX d_ix ON test(request_date);
这将允许连接在索引上使用精确匹配,并且事情应该运行得更快。
【讨论】: