2013-05-13 49 views
2

我有一個日期和時間(只有一小時和幾分鐘)參數是分開的報告。 Date參數的類型爲Date/Time,Time參數設置爲Text。我想將這兩個值合併爲一個,因爲我想將最少數量的參數傳遞給存儲過程。我試圖在很多方面實現這一目標,但SSRS爲每一次嘗試都返回一個錯誤。如何將單獨的日期和時間參數轉換爲有效的日期時間?

如果我嘗試使用表達式如下:

=Format(FormatDateTime(Parameters!startDate.Value, DateFormat.ShortDate).ToString() + Parameters!startTime.Value, "dd/MM/yyyy HH:mm") 

SSRS返回此錯誤:

Error conterting data type nvarchar to datetime.

,當我試圖用Datetime.Parse這樣的:

=DateTime.Parse(Format(FormatDateTime(Parameters!startDate.Value, DateFormat.ShortDate).ToString() + Parameters!startTime.Value, "dd/MM/yyyy HH:mm")) 

SSRS說:

The Value expression for the query parameter '@startDate' contains an error: The string was not recognized as a valid DateTime. There is a unknown word starting at index 0.

當我刪除了FormatDateTime功能我得到另一個錯誤:

The Value expression for the query parameter '@startDate' contains an error: Input string was not in a correct format.

你有任何想法如何正確地寫這個表達式?

PS。我使用SSRS 2008 R2。

回答

3

這個工作對我來說:

=CDate(Format(Parameters!Date.Value, "yyyy-MM-dd") + " " + Parameters!Time.Value) 

enter image description here

enter image description here

沒有嘗試和解決您的具體的例子,但他們可能會運行到問題在那裏你不包括日期和時間之間的空間。

上述表達式可能適合您的報告;不知道它會在不同的地區。

如果您需要更多的靈活性,您也可以考慮在自定義代碼中進行串接/轉換。

+0

這正是我所期待的。它解決了這個問題,現在我的報告很有用,謝謝! – tkestowicz 2013-05-13 13:11:55

+0

嗨伊恩,不幸的是它不可能發送PN,所以這是唯一的方法來問你,你如何管理輸入參數時間與默認格式HH:毫米。這是一個簡單的文本框或日期/時間。 Thx in advanced - Frank – Frank 2013-12-07 23:03:26

+0

嗨,@Frank。在上面的問題/答案中,這只是一個「文本」參數;它只是由運行報告的用戶編寫的。對於OP來說,這似乎已經足夠了。上面的表達式假設爲'HH:mm'格式 - 如果不是那種格式,它只是錯誤。如果您的要求明顯不同,那麼跟進一個新問題可能會更好。 – 2013-12-08 22:42:54

相關問題