请指导我哪里错了?

时间:2014-09-23 04:43:31

标签: asp.net sql-server-2008 datetime

我有一个记录每日销售的数据库。 现在我希望两个日期之间的客户端优秀。 我的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数据类型转换为日期时间数据类型会导致超出范围的值。

1 个答案:

答案 0 :(得分: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