我有一個視圖,它包含2012年至2012年的銷售數據,我需要編寫僅顯示當年銷售額(2013年)的查詢。SQL 2005獲取本年度數據
這是我在第一階段試圖
SELECT *
FROM [Sales_Data]
WHERE invoiceDate between '2013-01-01' and '2013-12-31'
此查詢需要2秒加載數據,我雖然更改查詢來獲取數據,不需要我來手動更新它,這是我在網上發現:
select * from [Sales_Data]
where datepart(yyyy,invoiceDate) =datepart(yyyy,getdate())
and datepart(yyyy,invoiceDate) =datepart(yyyy,getdate())
由於此查詢需要更長的時間來顯示數據(9秒)的結果。 請讓我知道是否有更好的查詢來在更短的時間內定義和獲取數據?
您的第二個查詢在絕對沒有理由的情況下在'WHERE'子句中重複相同的條件。它可以縮短爲'SELECT * FROM [Sales_Data] WHERE DatePart(yyyy,invoiceDate)= DatePart(yyyy,GetDate())' –