-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クエリの日付形式として使用することをお勧めします。米国では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"
于 2012-06-28T23:53:29.640 に答える