我从Reporting Services中获取数据,其中包含日期时间,如下所示:20160511,但在某些情况下它只是0.我需要一个表达式来执行以下操作:如果值为0,把字符串“never”,否则将数据放入正确的格式。 我试图在SSRS报告中使用一个表达式,如下所示:
==IIF(Fields!name.Value=0,"never", Cdate(...))
如果数据正确,工作正常,并显示日期,但在字段中,其中0,我收到此错误:#error和一些警告。
如果我只是用这个:
==IIF(Fields!name.Value=0,"never", "something else")
这是真正的分支,它正确地显示了never和其他字符串。我已经尝试了第一个代码wth是什么日期和其他,但它没有奏效。
我真的很困惑。有没有人知道修复第一个代码?
答案 0 :(得分:0)
您应该能够在CDATE中放入另一个IIF以消除错误:
=IIF(Fields!name.Value = 0,"never", Cdate(IIF(Fields!name.Value=0, "2000-01-01", Fields!Date.Value)) )
答案 1 :(得分:0)
将日期转换为varchar格式,您的公式将按预期工作。您可以使用格式 功能。对于例如如果你想要以mm / dd / yyyy输出,那么你的表达式将如下所示,
==IIF(Fields!name.Value=0,"never", Format(Fields!Date.Value,"MM/dd/yyyy"))
我希望这会有所帮助。干杯!