如何在SSIS表达式生成器中获取带年份的下月第一天(MM/DD/YYYY)
修正SSIS表达式获取下月第一天
你的问题出在年份的取值逻辑:原表达式直接取当前日期的年份year(getdate()),但12月运行时,加1个月后的日期已经是下一年,年份应该取加月后的日期年份,而非当前年份。
修正后的表达式如下:
RIGHT( "0" + (DT_STR, 2, 1252) MONTH(DATEADD("MM", 1, GETDATE())), 2) + "/01/" + (DT_WSTR, 4) YEAR(DATEADD("MM", 1, GETDATE()))
逻辑说明:
- 用
DATEADD("MM", 1, GETDATE())得到当前日期加1个月后的日期(比如2022年12月29日运行时,该值为2023年1月29日) - 月份部分仍取加月后日期的月份,确保12月运行时得到1月
- 年份部分改为取加月后日期的年份,这样12月运行时自然获取下一年年份,其他月份则保持当前年份
验证示例:
- 1月运行:加1个月后是2月,年份为当前年,输出
02/01/2023 - 2022年12月29日运行:加1个月后是2023年1月,年份为2023,输出
01/01/2023
内容的提问来源于stack exchange,提问作者avocado
相关产品推荐
相关产品推荐

