选择字段或参数之间的datediff

时间:2014-07-09 19:35:16

标签: sql parameters datediff

我的select语句中有以下部分,当我编写日期时它会起作用,但是当我发送参数时它会给我一个错误。

这有效:

SELECT (...unrelevant info), DATEDIFF(DAY, CASE WHEN Startdate > '14/6/2014' THEN Startdate ELSE '14/6/2014' END,   CASE WHEN Enddate < '19/6/2014' THEN Enddate ELSE '19/6/2014' END) + 1 AS AmontOfSelectedDays

这给了我错误:

SELECT (...unrelevant info), DATEDIFF(DAY, CASE WHEN Startdate > @from 
THEN Startdate ELSE @from END, 
CASE WHEN Enddate < @until THEN Enddate ELSE @until END) + 1 AS AmontOfSelectedDays

我在visual studio中的数据集数据表中执行此操作。

在查询构建器中运行它时会出现以下错误:

传入的表格数据流(TDS)远程过程调用(RPC)协议流不正确。参数3(“@ from”): 数据类型0F0(用户定义的数据类型)指定了无效的用户类型。

继续时它会给我以下警告 必须声明@from变量。

1 个答案:

答案 0 :(得分:0)

好的我找到了答案:不知何故,当我从明确的日期改为@from,我的where子句被删除(其中startdate&lt; @until和enddate&gt; @from)现在我把它重新放入,它可以工作