我喜歡在兩個日期比較,當我在做一個加入以下內容:如何僅使用日期而不是時間比較SQL Server日期時間?
a.requestdate = b.alertDate
,但我不想花時間考慮。只是約會。
想知道做到這一點的最佳方式是什麼。我正在使用SQL Server 2012(t-sql)
我喜歡在兩個日期比較,當我在做一個加入以下內容:如何僅使用日期而不是時間比較SQL Server日期時間?
a.requestdate = b.alertDate
,但我不想花時間考慮。只是約會。
想知道做到這一點的最佳方式是什麼。我正在使用SQL Server 2012(t-sql)
在哪裏條件下,可以使用這樣的datediff函數。
datediff(day, a.requestdate, b.alertdate) = 0
或者你可以投的領域日期.....但我更喜歡@拉溫德拉的解決方案。
CAST(DateField1 AS DATE) = CAST(DateField2 AS DATE)
簡單,如果使用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);
這將允許連接在索引上使用完全匹配,並且事情應該運行得更快。