... AND (Orders.ShipDate >= DATEADD(MONTH, Datediff(MONTH, 0, GetDate()) -12), 0)
AND Orders.ShipDate < DATEADD(MONTH, Datediff(MONTH, 0, GetDate()), 0)
我最初使用
CAST(FLOOR(CAST .....
删除where子句中的time组件,查询执行时间为6min - 这个方法依赖于静态表,所以我决定放弃它。使用DATEADD
和DATEDIFF
组合,我的查询仍然在40分钟后运行。
根据以下内容,这是SQL Server 2005和2008中的已知问题: MSDN Blog Article
由于这是一个视图,如何预先计算FROM
和TO
日期并传递实际值以减少查询执行期间的传递次数?
答案 0 :(得分:1)
你计算&#34;第0天和第34天之间的日子。现在,但增加了MONTHS的数量。你可能想纠正这个......否则它看起来很好(只是)给我。