我收到错误:
从字符串转换日期和/或时间时转换失败。
我像这样调用存储过程:
var result = (from x in db.spStoredProc(sStart, sEnd) select x).ToList();
其中sStart
和sEnd
是具有此值的字符串:
sStart = "CONVERT(date,GETDATE())"
和
sEnd = "DATEADD(d,1,CONVERT(date,GETDATE()))"
存储过程有两个类型varchar(max)
在存储过程中,我进行了左连接,我使用它们:
where date_expire >= @sStartSQL AND date_expire < @sEndSQL
为什么我会收到错误?
答案 0 :(得分:1)
您只能将文字作为参数传递。因此,SQL Server确实试图将其转换为日期:
sEnd = "DATEADD(d,1,CONVERT(date,GETDATE()))"
相反,传递:
sEnd = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss")
作为参数。