1

我得到错误:

从字符串转换日期和/或时间时转换失败。

我这样调用存储过程:

var result = (from x in db.spStoredProc(sStart, sEnd) select x).ToList();

其中sStartsEnd是具有此值的字符串:

sStart = "CONVERT(date,GETDATE())"

sEnd = "DATEADD(d,1,CONVERT(date,GETDATE()))"

存储过程有两个参数类型varchar(max)

在存储过程中,我进行了左连接,并像这样使用它们:

where date_expire >= @sStartSQL AND date_expire < @sEndSQL

为什么我会收到错误消息?

4

1 回答 1

1

您只能将文字作为参数传递。所以 SQL Server 从字面上尝试将其转换为日期:

sEnd = "DATEADD(d,1,CONVERT(date,GETDATE()))"

相反,通过:

sEnd = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss")

作为参数。

于 2012-12-31T10:06:00.310 回答