2009-12-01 29 views
2

我只想检查我的逻辑。优化DATEDIFF

假设我想查找过去30天内的所有新产品。我现在的程序是这样的:

SELECT ProductName 
FROM ProductTable 
WHERE DATEDIFF(d, CreateDate, GETDATE()) < 30 

不过,据我所知,像DATEDIFF功能将无法使用我已经在CreateDate创建的非聚集索引。因此,因此,我的查询运行更快的使用以下步骤:

SELECT ProductName 
FROM ProductTable 
WHERE CreateDate >= DATEADD(d, -30, GETDATE()) AND CreateDate < GETDATE() 

BTW,我没有从我这里SQL服务器,所以我不能测试此使用的执行计划。

回答

1

是的,你是正确的,第二个查询会更快,因为它可以使用CreateDate上的任何可用索引。