2014-06-19 31 views
0

我有以下SSIS表達式:如何獲得前一個月的數字

Right("0" + (DT_STR,4,1252) DatePart("m",getdate()),2) + RIGHT("0" + (DT_STR,4,1252) DatePart("yyyy",getdate()),2) 

這給了我0614

如何更改月份代碼,以便始終提供上個月的號碼?

+1

是英語新這是SSRS嗎?我認爲你的意思是標記SSIS而不是SSRS。這是Integration Services中的一個有效表達式,您可以在其中找到表達式構建器對話。 – mmarie

+0

不,它是SSRS表達式生成器。 – Si8

+0

Opppps ...你是對的,這是SSIS包:/ – Si8

回答

1

實際上,我不知道你的表達是什麼 - 它看起來像是SQL和SSRS VBA的混合體。這可能是SSIM所認爲的@mmarie。

所以我給你兩個答案 - SQL(你可以在SSRS的查詢表達式中使用)和實際的VBA SSRS表達式。

要調整你必須SQL獲得前一個月,你可以使用:

Right('0' + CAST(DatePart(mm, DateAdd(mm, -1, getdate())) AS VARCHAR), 2) 
+ RIGHT('0' + CAST(DatePart(yy, DateAdd(mm, -1, getdate())) AS VARCHAR), 2) 

要讓這是一個SSRS表達式,你可以使用:

=Right("0" & CStr(DatePart(DateInterval.Month, DateAdd(DateInterval.Month, -1, Today))), 2) 
& Right("0" & CStr(DatePart(DateInterval.Year, DateAdd(DateInterval.Month, -1, Today))), 2) 

要轉換原來SSIS的表情,你會像這樣與DateAdd(mm, -1, getdate())取代getdate()

Right("0" + (DT_STR,4,1252) DatePart("m", DateAdd(mm, -1, getdate())), 2) 
+ RIGHT("0" + (DT_STR,4,1252) DatePart("yyyy", DateAdd(mm, -1, getdate())), 2) 
+0

mmarie是正確的。我只有漫長的一天:)...所以這兩個表達式在SSIS的表達式生成器中是無效的 – Si8

相關問題