其他人正確地where
取代order by
爲您的查詢,但我想討論的查詢的另一部分:將輸出的所有記錄落入特定日期內 是
我試圖做一個查詢在SQL 。
儘管這可能並不明顯,但數據的「精確度」可能會影響最佳實現日期範圍的方式。例如,如果你的數據是準確的,只是一個日期,然後WHERE products.date >= '2017/02/25' AND products.date <= '2017/02/27'
或WHERE products.date BETWEEN '2017/02/25' AND '2017/02/27'
會選擇僅低於3個大膽行:但是,如果你的數據是精確到秒(或毫秒)你得到了不同的結果
2017/02/24
2017/02/25
2017/02/26
2017/02/27
2017/02/28
,僅有2粗體行
2017/02/24 12:13:14
2017/02/25 12:13:14
2017/02/26 12:13:14
2017/02/27 12:13:14
2017/02/28 12:13:14
要準確有關日期範圍不介乎使用或組合> =和< =(之間僅僅是> =和< =快捷方式)。使用這個來代替:
SELECT `Item`.`Item`, `products`.`date`
FROM `Item`
LEFT JOIN `products` ON `products`.`ItemCode` = `Item`.`ItemCode`
WHERE `products`.`date` >= '2017/02/25' AND `products`.`date` < '2017/02/28'
2017/02/24 12:13:14
2017/02/25 12:13:14
2017/02/26 12:13:14
2017/02/27 12:13:14 this is less than '2017/02/28'
2017/02/28 12:13:14
使用少於(大日期+ 1)將保證你得到的日期/時間範圍內精確的結果,無論是存儲數據的日期/時間精度。
標記您正在使用的特定類型的SQL:MySQL,PostgreSQL等? – treyhakanson
你的查詢非常清楚MySQL的反引號,所以你應該用MySQL標記問題 - 總是指定dbms的類型 –