我正在使用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/