日期:2014-05-19  浏览次数:20467 次

在存储过程中连接SQL语句的问题???
DECLARE   @ExeSQL   nvarchar(1000)
SET   @ExeSQL   =   'SELECT   ROW_NUMBER()   OVER(Order   By   CD.OutDate   DESC)   AS   SerialNumber,C.Name,SB.ID,M.Member_Name,CD.OutDate   FROM     dbo.CertifiedDetail   CD   Inner   Join   dbo.Customers   C   On   CD.CustomerID   =   C.ID   Inner   Join   dbo.SaleBill   SB   On   CD.SaleID   =   SB.ID   Inner   Join   dbo.Member   M   On   SB.MemberID   =   M.Member_ID   WHERE   CD.IsDelete   =   0   And   (CD.OutDate   Between   ' ' '   +   @StartDate   +   ' ' '   And   ' ' '   +   @EndDate   + ' ' ') '
print   @ExeSQL

以上代码在运行存储过程时出现“从字符串向   datetime   转换时失败.”,@StartDate和@EndDate为存储过程参数

------解决方案--------------------
你可以检查一下
@StartDate和@EndDate
传入的是否是有效的日期阿!
------解决方案--------------------
(CD.OutDate Between ' ' ' + @StartDate + ' ' ' And ' ' ' + @EndDate + ' ' ') '
改为
(CD.OutDate Between @StartDate And @EndDate )


------解决方案--------------------
恭喜!
------解决方案--------------------
楼主牛啊