我的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
变量。
答案 0 :(得分:0)
好的我找到了答案:不知何故,当我从明确的日期改为@from,我的where子句被删除(其中startdate&lt; @until和enddate&gt; @from)现在我把它重新放入,它可以工作