Sql中的日期转换错误

时间:2012-12-31 10:01:23

标签: c# sql entity-framework

我收到错误:

  

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

我像这样调用存储过程:

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

为什么我会收到错误?

1 个答案:

答案 0 :(得分:1)

您只能将文字作为参数传递。因此,SQL Server确实试图将其转换为日期:

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

相反,传递:

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

作为参数。