2011-08-18 96 views
1

我的數據源是XML(共享點列表)。我基本上想顯示日期格式,如果該字段中的值是一個日期,如果不是,則顯示「NA」。出於某種原因,即使數據是字符串,它仍然試圖將其轉換爲某處的日期。這裏是我的代碼..SSRS錯誤:從字符串「字符串; #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;#","") 
) 

回答

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)) 
+0

花了我3小時後重理解爲什麼FORMATDATETIME仍然執行時,如果條件如果假直到我找到你的帖子 – ZERO

相關問題