0

FluentDataORMを使用して C# で次のクエリを実行します。

List<dynamic> results = 
   Context().Sql(@"SELECT DISTINCT
                      a.EnteredDate,
                      bb.PK_EmployeeName,
                      bb.EmployeeId,
                      bb.EmployeeName,
                      dd.PK_EquipmentName,
                      dd.EquipmentId,
                      dd.EquipmentName
                   FROM 
                      dbo.PIT_Inspection a
                   INNER JOIN 
                      dbo.PIT_EmployeeName bb ON a.FK_EmployeeName = bb.PK_EmployeeName
                   INNER JOIN 
                      dbo.PIT_EquipmentName dd ON a.FK_EquipmentName = dd.PK_EquipmentName
                   WHERE 
                      CAST(a.EnteredDate AS DATE) BETWEEN '@0' AND @1'", 
                  fromDate, toDate ).QueryMany<dynamic>();

パラメータfromDateおよびtoDateにはstrings、次のものが取り込まれます。

  • fromDate= "20150224"
  • toDate= "20150227"

問題があると思われる領域は次のとおりです。

WHERE CAST(a.EnteredDate AS DATE) BETWEEN '@0' AND '@1'", 
   fromDate , toDate

エラーが表示される

文字列から日時を変換する際に変換に失敗しました

上記の行a.EnteredDateは、タイプDateTimeです。実行中のクエリを SQL Server Management Studio にコピーすると、正常に実行されます。パラメータが実際に正しいデータを文字列として取り込んでいることを再確認しました。

このエラーの原因について何か考えはありますか?

4

1 に答える 1