小弟以為用 between 是最好的寫法, 條件欄位在where 中做運算,會影響查詢效能。
下圖是小弟在一個有 110萬筆資料的測試結果。
進行三個測試,db 是 sql2005, 日期欄位有建索引,指令分別為
1. SELECT * FROM Tbl WHERE IODate BETWEEN '2013-1-1' AND '2013-1-31'
2. SELECT * FROM Tbl WHERE convert(varchar(7), IODate, 120) = '2013-01'
3. SELECT * FROM Tbl where year(IODate) = 2013 and month(IODate) = 01
查詢速度 1 >> 3 >> 2