我正在使用以下查询从使用VB.NET 4.0的SQL Server 2005获取数据
strSQL = "SELECT EmpNo,
Sum(Cast(Substring(OTHours, 0, 3)AS FLOAT)) AS Hour,
Sum(Cast(Substring(OtHours, 4, 5)AS FLOAT)) AS Minutes
FROM TMSTrans
WHERE CONVERT(VARCHAR, datein, 103) >= '01/06/2012'
AND CONVERT(VARCHAR, datein, 103) <= '27/06/2012'
GROUP BY EmpNo"
但是返回了错误的数据 - 我认为这是一个日期范围问题。在表格中,我有一个日期时间字段,其中存在数据01/04/2012 00:00:00
。有人可以帮忙吗?
答案 0 :(得分:0)
我建议您使用year month day
作为查询中的日期格式。美国使用Month Day Year
作为日期格式,因此如果您在查询中使用01/06/2012
,系统可能会识别6 Jan 2012
。因此,您的查询实际上是在6 January
和27 June
之间获取日期范围。
试试这个:
strSQL = "SELECT EmpNo,
Sum(Cast(Substring(OTHours, 0, 3)AS FLOAT)) AS Hour,
Sum(Cast(Substring(OtHours, 4, 5)AS FLOAT)) AS Minutes
FROM TMSTrans
WHERE CONVERT(VARCHAR, datein, 112) >= '20120601'
AND CONVERT(VARCHAR, datein, 112) <= '20120627'
GROUP BY EmpNo"