如何在两个日期之间获取以下 SRSS Iff 表达式以使其正常工作



我正在努力使以下表达式正常工作;有人可以建议吗? 表达式将运行,但所有字段都填充 #Error 消息。

=iif(Fields!From.Value>="01/09/2021" and Fields!From.Value <= "31/08/2022", "Sept 2021",
iif(Fields!From.Value>= "01/09/2020" and Fields!From.Value <= "31/08/2021", "Sept 2020", 
iif(Fields!From.Value >= "01/09/2019" and Fields!From.Value <= "31/08/2020", "Sept 2019", 
iif(Fields!From.Value >= "01/09/2018" and Fields!From.Value <= "31/08/2019", "Sept 2018",
iif(Fields!From.Value >= "01/09/2017" and Fields!From.Value <= "31/08/2018","Sept 2017",
iif(Fields!From.Value >= "01/09/2016" and Fields!From.Value <="31/08/2017","Sept 2016","0"))))))

任何帮助将不胜感激!

假设From实际上是一个日期而不是字符串,那么如果这样,你可以简化。

="Sept " &
(YEAR(Fields!From.Value) 
- IIF(Month(Fields!From.Value) >= 9, 0, 1)
)

这仅检查月份是否>=9,然后将零或 1 减去From字段的年份部分。然后只要"Sept "贴在它前面。这也意味着您不需要冗长的 IIF 或 SWITCH 语句,它可以适用于任何一年。

关于你的原始表达。如果需要使用字符串文本来表示日期,则最好使用非歧义格式。"01/09/2021"在英国可以解释为"2021 年 9 月 1 日",在美国可以解释为"2021 年 1 月 9 日"。如果您使用"2021-09-01"则应始终正确解释。

最新更新