我有以下SSIS表达式:
Right("0" + (DT_STR,4,1252) DatePart("m",getdate()),2) + RIGHT("0" + (DT_STR,4,1252) DatePart("yyyy",getdate()),2)
给了我0614
。
如何更改月份代码,以便始终为我提供上个月的数字?
答案 0 :(得分:1)
实际上,我不知道你的表达是什么 - 它看起来像是SQL和SSRS VBA的混合。正如@mmarie建议的那样,它可能是SSIS。
所以我给你两个答案 - 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表达式,您可以将getdate()
替换为DateAdd(mm, -1, 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)