SSRS表达式,带日期条件的iif语句

时间:2014-10-24 17:00:39

标签: date reporting-services expression

所以我在SSRS中的startDate和endDate的默认值是使用以下ssrs表达式设置的。

上个月的第一天ssrs表达

=DateAdd(DateInterval.Month, -1, DateSerial(Year(Date.Now), Month(Date.Now), 1))

上个月最后一天ssrs表达

 =DateAdd(DateInterval.Day, -1, DateSerial(Year(Date.Now), Month(Date.Now), 1))

但是,除非我想在每个月的16日进入并为当月前15天请求它的人生成此报告,否则在我的情况下这不会单独起作用。

所以在开始日期的默认值表达式中,我正在尝试这个iif语句......

= iif(
    DatePart(DateInterval.Day, Today() <> "20",
    DateInterval.Month, -1, DateSerial(Year(Date.Now), Month(Date.Now), 1),
    DateInterval.Month, 1, DateSerial(Year(Date.Now), Month(Date.Now), 1)
 )

运作不好。所以我要做的就是......

根据当月的当天更改默认开始日期和结束日期,因此,如果当前月份的当前日期等于16,则将当前月份的开始日期1和当前月份的结束日期15设为当前日期月份不是16个开始日期的前一个月的第一天和结束日期的上个月的最后一天。那么唯一需要的是获取订阅电子邮件以及将它们发送到哪一天。

1 个答案:

答案 0 :(得分:2)

未经测试,但如果你试试这个怎么办? (对于您的开始日期参数):

= iif(
    DatePart(DateInterval.Day, Today()) <>  "16",
    DateAdd(DateInterval.Month, -1, DateSerial(Year(Date.Now), Month(Date.Now), 1)),
    DateSerial(Year(Date.Now), Month(Date.Now), 1)
 )