SSRS错误:从字符串“string; #NA”到“Date”类型的转换无效

时间:2011-08-18 18:51:14

标签: sql-server-2008 reporting-services

我的数据源是XML(共享点列表)。我基本上想要显示日期格式化,如果字段中的值是一个日期,如果没有那么显示“NA”。出于某种原因,即使数据是一个字符串,它仍然试图将其转换为某个地方的日期。这是我的代码..

=IIF
(
ISDATE(replace(First(Fields!ows_Manufacturing_Date.Value, "DataSet1"),"datetime;#","")),
formatdatetime(replace(First(Fields!ows_Manufacturing_Date.Value, "DataSet1"),"datetime;#",""),2),
replace(First(Fields!ows_Manufacturing_Date.Value, "DataSet1"),"string;#","")
)

1 个答案:

答案 0 :(得分:2)

问题是SSRS中的IIF语句没有短路,它总是评估两个条件,所以即使字段不是日期,它仍然会尝试执行formatdatetime函数。

(见:SSRS iif function question

而不是IIF函数,请尝试使用SWITCH函数:

=SWITCH(First(Fields!ows_Manufacturing_Date.Value, "DataSet1")="string;#NA",
"NA",
First(Fields!ows_Manufacturing_Date.Value, "DataSet1")<>"string;#NA",
formatdatetime(replace(First(Fields!ows_Manufacturing_Date.Value, "DataSet1"),"datetime;#",""),2))
相关问题