@DateFrom的月份第1天的滚动报告参数

时间:2014-07-02 09:22:35

标签: reporting-services

我遇到了运行每日报告的@datefrom参数的边界值。

这是我有多远,但返回错误。

DateFrom

= IIF(DatePart(“d”,1,0,0),(DateAdd(“m”, - 1,DateSerial(Year(Now),Month(now),1))),(DateSerial(Year) (现在),月(现在),1)))

错误消息

参数'DateValue'无法转换为'Date'类型

该表达式旨在允许从月的最后一天到下一个的第一天的边界日期更改。

任何帮助将不胜感激。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

假设您只想在表达式中返回一个日期,您可以使用:

=IIf(DatePart("d", Today, 0, 0) = 1
    , DateAdd("m", -1,  Today)
    , DateSerial(Year(Today), Month(Today), 1))

对于今天(即 02-Jul-2014 ),这将返回日期 01-Jul-2014 ,但昨天运行它(即 01-Jul -2014 )你会得到 2014年6月1日

您现有的表达式看起来有一些语法问题 - 您需要将DatePart表达式的结果与IIf表达式的第一个子句中的实际整数进行比较。它期望第一个子句中有一个布尔值。

此外,由于您只使用DatePart来获取日期,因此可以使用较少的参数:

=IIf(DatePart("d", Today) = 1
    , DateAdd("m", -1,  Today)
    , DateSerial(Year(Today), Month(Today), 1))