IIF 日期的 SSRS 表达式因#error 而失败

SSRS expression fails for IIF date with #error

一个存储过程包含在 rdl 类型的报表生成器文件中。存储过程有很多字段。其中一个字段 returns 一个日期(不是日期时间)。报告中的预期结果是仅显示日期,如果未返回日期则为空字段。

仅使用字段值,当日期为空时,结果显示空字段,否则显示带有日期时间值的日期。

使用 IIF 检查 'nothing' 的值,如下所示。

=IIF(Fields!myDate.Value Is Nothing,"",Fields!myDate.Value)

输出是一样的。日期可用时显示日期时间值。

尝试使用 shortDateString() 函数会在日期存在时产生正确结果,但在日期不存在时产生#Error。这是声明:

=IIF(Fields!rlsPromoDate.Value Is Nothing, "", 
Fields!rlsPromoDate.Value.ToShortDateString())

已尝试使用以下版本。没有产生错误,但是没有返回日期,但这是 "Microsoft.ReportingServices.ReportProcessing.OnDemandReportObjectModel.FieldImpl"。

=IIF(Fields!myDate.Value Is Nothing,"", String.Format("{0:MM/dd/yyyy}", 
Fields!myDate))

有解决办法请指教

尝试以下操作:

=IIF(Fields!rlsPromoDate.Value Is Nothing, "", Format(Fields!rlsPromoDate.Value, "dd/MM/yyyy"))

或您实际想要使用的任何日期格式。