上个月的SSIS日期表达

时间:2015-07-16 04:22:40

标签: sql-server visual-studio-2010 ssis expression

我试图从我写的表达中得到上个月,但我没有运气。我希望能够在上个月的表达式中使用-1,-2等。非常感谢帮助。

MONTH(Created) == MONTH(GETDATE()) && YEAR(Created) == YEAR(GETDATE())

1 个答案:

答案 0 :(得分:0)

AFAIK,SSIS中的表达式month()返回DT_I4 - 换句话说普通的int。你应该可以从中减去1。

因此...

  • MONTH(Created)应返回int值,该值表示数据库中类似日期时间的列Created的月份数
  • MONTH(GETDATE())应该返回当月
  • MONTH(GETDATE()) - 1应该在上个月返回;但是你应该注意年终包装,因为那个案例的前一个月是0,如果你使用那个表达式,你应该将数字更正为12
  • 一年的一切都是一样的,除了你不必注意包装

所以,你应该使用的表达式是某些之类的......

MONTH(Created) == CASE WHEN MONTH(GETDATE()) = 1 THEN 12 ELSE MONTH(GETDATE()) - 1 END
&& YEAR(Created) == YEAR(GETDATE())