2014-09-23 32 views
0

我有一個數據庫,每日銷售記錄。 現在我想在兩個日期之間得到客戶端的優秀。 我的date_列在varchar中。 我沒有得到所需的結果。通過這個查詢,當我用它之間查詢其顯示錯誤的數據。所以什麼是解決方案?麻煩幫助請指導我,我錯了嗎?

SELECT clientid AS [ID],SUM(convert(float, total)) AS [SUM] 
     FROM buffalo_milk_sale 
     WHERE clientid BETWEEN 'HD001' AND 'HD099' 
     AND CONVERT(DateTime, date_, 103) >= CONVERT(DateTime, '01/09/2014', 103) 
     AND CONVERT(DateTime, date_, 103) <= CONVERT(DateTime, '09/09/2014', 103) 
GROUP BY clientid 

錯誤

varchar數據類型爲datetime數據類型的轉換導致外的範圍內的值。

+2

你爲什麼要使用VARCHAR的日期時間值? – Mairaj 2014-09-23 05:17:17

回答

0

嘗試這個

SELECT clientid AS [ID],SUM(convert(float, total)) AS [SUM] 
FROM buffalo_milk_sale 
WHERE clientid BETWEEN 'HD001' AND 'HD099' 
AND CONVERT(VARCHAR(10), date_, 111) >= CONVERT(DateTime, '01/09/2014', 103) 
AND CONVERT(VARCHAR(10), date_, 111) <= CONVERT(DateTime, '09/09/2014', 103) 
GROUP BY clientid