对 s-s-rS 中的参数使用 DateAdd 时出错
Posted
技术标签:
【中文标题】对 s-s-rS 中的参数使用 DateAdd 时出错【英文标题】:Error when using DateAdd on a parameter in s-s-rS 【发布时间】:2018-08-14 14:15:41 【问题描述】:我正在尝试设置日期范围。我收到一个名为 @EffectiveDate 的参数,我想设置一个从生效日期前 3 年开始的范围。
举个例子。这是工作代码。
CStr(Format(CDate(DateAdd(DateInterval.Year, -3, Today())),"yyyy"))
但是当我尝试使用下面的参数时
=CStr(Format(DateAdd(DateInterval.Year, -3, CDate(Parameters!EffectiveDate.Value)),"yyyy"))
我得到一个错误。我不知道错误是什么。运行报告时我看到的只是#Error。
该参数在 s-s-rS 中设置为“日期/时间”,我什至将其转换为以防万一。
以下代码确实有效
=CStr(Format(CDate(Parameters!EffectiveDate.Value),"yyyy"))
所以看起来确实是“DateAdd”方法
任何帮助将不胜感激。谢谢
【问题讨论】:
它看起来应该可以工作了。如果您在 Visual Studio 中运行报告,您应该会在 错误列表 窗口中收到 有点 有用的错误消息,该消息可能会缩小哪个函数存在问题的范围。 FORMAT 已经转换为字符串,因此 CSTR 应该是不必要的。 我会排除所有功能并一次添加一个,直到出现错误。首先只是 EffectiveDate 参数,然后添加 CDATE,然后(如果有效)DateAdd 函数,然后格式化,CSTR ...您也可以尝试CSTR(YEAR(Parameters!EffectiveDate.Value) - 3)
【参考方案1】:
你能试试这个代码吗
=CStr(Format(CDate(DateAdd(DateInterval.Year, -3, CDate(Parameters!EffectiveDate.Value))),"yyyy"))
【讨论】:
【参考方案2】:试试看是否可行
=CStr(Format(CDate(DateAdd("yyyy", -3, Now())), "yyyy")) 'Result =2015
如果可行,请尝试使用您的 Parameter(而不是 Now())。如果它不起作用,那么您的 参数
有问题【讨论】:
以上是关于对 s-s-rS 中的参数使用 DateAdd 时出错的主要内容,如果未能解决你的问题,请参考以下文章