2013-05-16 59 views
1

SSRS中,我想返回一個DateValue,它是所選月份/年後的下一個月的第一天。除了當我嘗試評估12月份時,一切都適用於我的公式。該公式適用於所有其他月份(例如,對「4」進行評估會產生1/1 /(年選+1)的輸出),但12月每次都會返回一個#Error。SSRS - DateValue

我的公式是:

=IIF(Parameters!Month.Value="12",(DateValue("1" & "/" & Parameters!Year.Value+1)),(DateValue(Parameters!Month.Value+1 & "/" & Parameters!Year.Value))) 

回答

2

我會看看使用DateAddDateSerial

所以一個表達式,如:

=DateAdd(DateInterval.Month 
    , 1 
    , DateSerial(Parameters!Year.Value, Parameters!Month.Value, 1)) 

這使用DateSerial構建第一個月爲選定年和,然後使用DateAdd其他月份加入到這一點。

enter image description here

enter image description here

+0

謝謝伊恩!奇蹟般有效! –

0

我不承認則DateValue(),但不要你的意思是包括日,還有一個月和一年?

=IIF(Parameters!Month.Value="12",(DateValue("1/1/" & Parameters!Year.Value+1)),(DateValue(Parameters!Month.Value+1 & "/1/" & Parameters!Year.Value))) 

您還可以使用CDate(日期字符串)將字符串轉換爲日期。見SSRS ExpressionsType Conversion Functions

+0

我使用CDATE(datestring)也試過:

對我做了測試表現基本報告工作的罰款。只要我沒有將CDate(日期字符串)作爲IIF語句中的「then」,IIF(Month =「12」,CDate(日期字符串),CDate(日期字符串))會發生什麼。只要我添加CDate(日期字符串)作爲一個然後到我的條件,公式#error與每月選擇12。 –