SSF在IIF声明中使用DateDiff时出现问题

时间:2015-12-14 20:44:00

标签: reporting-services

SSRS在语句为False时返回#error,在语句为True时返回No Start Date。我测试了并且DateDiff在语句的False侧是正确的。我不确定从这里走哪个方向。谢谢。

=IIF(Fields!JobOrderIssueDate.Value = "", "No Start Date",DateDiff("d",Today(),Fields!ProjectedConstEndDate.Value))

2 个答案:

答案 0 :(得分:2)

您正在IIF混合数据类型,返回STRING或DATE,具体取决于IIF的条件。这不会起作用。

一种方法是转换由FALSE条件返回的数据类型,以便它也返回一个STRING(使用CStr()):

=IIF(Fields!JobOrderIssueDate.Value = "", "No Start Date",CStr( DateDiff("d",Today(),Fields!ProjectedConstEndDate.Value)))

或者您可以对格式化进行更多控制(使用FormatDateTime()):

=IIF(Fields!JobOrderIssueDate.Value = "", "No Start Date",FormatDateTime( DateDiff("d",Today(),Fields!ProjectedConstEndDate.Value), DateFormat.ShortDate)) 

答案 1 :(得分:-1)

更改格式以比较数据和字符串也不起作用,用IsDate函数检查日期字段的最佳方法

=IIF(IsDate(Fields!JobOrderIssueDate.Value), DateDiff("d",Today(),Fields!ProjectedConstEndDate.Value), "No Start Date")