我正在使用asp.net中的以下sqlquery使用内部联接按三个表分组:

  SELECT tblVendorItem.Name,
  tblEventItem.Quantity * tblEventItem.Price AS 'Sale',
  tblEventService.ServiceDate
  FROM tblEventService
  INNER JOIN  tblEventItem ON
  tblEventService.EventServiceID = tblEventItem.EventServiceID
  INNER JOIN  tblVendorItem ON
  tblEventItem.VendorItemID = tblVendorItem.VendorItemID
  INNER JOIN  tblVendor ON
  tblVendorItem.VendorID = tblVendor.VendorID
  WHERE (tblEventService.VendorID = 1)
  AND (tblEventService.ServiceDate BETWEEN '20-04-2015 00:00:00' AND '23-04-2015 00:00:00')
  GROUP BY
  tblVendorItem.Name, tblEventItem.Quantity, tblEventItem.Price, tblEventService.ServiceDate

在这里,VendorID和Dates是静态的。已分析查询,但在执行时,它显示以下错误:
我已经检查了模型类和表中的数据类型,它显示了datetime。
有谁能告诉我查询中有什么错误,或者如何解决这个错误?

最佳答案

尝试对常量使用ISO标准格式:

tblEventService.ServiceDate BETWEEN '2015-04-20' AND '2015-04-23'

另外,时间成分是不必要的。
另外,我建议只对字符串和日期常量使用单引号。不要将它们用于列别名。

关于c# - 日期时间查询中的错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29577695/

10-12 12:33