我有以下 SSIS 表达式:
Right("0" + (DT_STR,4,1252) DatePart("m",getdate()),2) + RIGHT("0" + (DT_STR,4,1252) DatePart("yyyy",getdate()),2)
这给了我0614
。
如何更改月份代码,以便它总是给我上个月的号码?
我有以下 SSIS 表达式:
Right("0" + (DT_STR,4,1252) DatePart("m",getdate()),2) + RIGHT("0" + (DT_STR,4,1252) DatePart("yyyy",getdate()),2)
这给了我0614
。
如何更改月份代码,以便它总是给我上个月的号码?
实际上,我不知道你的表达方式是什么——它看起来像是 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)