Visual studio 对SSRS中的参数使用DateAdd时出错

Visual studio 对SSRS中的参数使用DateAdd时出错,visual-studio,reporting-services,ssrs-2008,Visual Studio,Reporting Services,Ssrs 2008,我正在尝试设定一系列的日期。我收到一个名为@EffectiveDate的参数,我想将范围设置为生效日期前3年 举个例子。这是工作代码 CStr(Format(CDate(DateAdd(DateInterval.Year, -3, Today())),"yyyy")) 但是当我尝试使用如下参数时 =CStr(Format(DateAdd(DateInterval.Year, -3, CDate(Parameters!EffectiveDate.Value)),"yyyy")) 我犯了一个错误

我正在尝试设定一系列的日期。我收到一个名为@EffectiveDate的参数,我想将范围设置为生效日期前3年

举个例子。这是工作代码

CStr(Format(CDate(DateAdd(DateInterval.Year, -3, Today())),"yyyy"))
但是当我尝试使用如下参数时

=CStr(Format(DateAdd(DateInterval.Year, -3, CDate(Parameters!EffectiveDate.Value)),"yyyy"))
我犯了一个错误。我不知道是什么错误。我只看到运行报告时出错

该参数在SSRS中设置为“日期/时间”,我甚至将其转换为以防万一

但下面的代码确实有效

=CStr(Format(CDate(Parameters!EffectiveDate.Value),"yyyy"))
所以它看起来确实像是“DateAdd”方法

任何帮助都将不胜感激。谢谢

你能试试这个代码吗

=CStr(格式为CDate(DateAdd(DateInterval.Year,-3,CDate(Parameters!EffectiveDate.Value)),“yyyy”))

如果可行,请尝试

=CStr(Format(CDate(DateAdd("yyyy", -3, Now())), "yyyy"))  'Result =2015

如果可以,请尝试使用参数(而不是Now())。如果它不起作用,那么您的参数有问题,看起来它应该起作用了。如果您在VisualStudio中运行该报告,您应该会在错误列表窗口中看到一条有用的错误消息,这可能会缩小哪个函数有问题的范围。格式已经转换为字符串,所以CSTR应该是不必要的。我会排除所有函数,然后一次添加一个,直到出现错误。首先是EffectiveDate参数,然后添加CDATE,然后(如果可以的话)DateAdd函数,然后是format,CSTR。。。您还可以尝试
CSTR(年份(参数!EffectiveDate.Value)-3)