-1

我正在使用以下查询使用 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. 任何人都可以帮忙吗?

4

1 回答 1

0

我建议您year month day在查询中使用日期格式。USMonth 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"
于 2012-06-28T23:53:29.640 回答