2017-10-20 155 views
1

我想在我的SSIS包中实现条件拆分组件。我需要根据年份来分割记录。我需要提取过去5年的数据,并在将其转储到目标之前需要将其拆分。在SSIS拆分组件中的表达式给出错误

periodenddate是datetime字段。我需要从该字段中提取年份,并将其与表达式中提到的实际年份进行比较。我收到无效表达式的错误。可能有人告诉我,我要去哪里错了

我现在用的表达是如

periodEndDate == YEAR(GETDATE()) 

请找出错误连接

enter image description here

二错误

enter image description here

第三届错误

enter image description here

+0

'periodenddate'全部小写,不是骆驼的情况! – MiguelH

+0

我试着把小写字母仍然出错。请参阅屏幕截图标题第二个错误。还尝试过单个等于运算符 – Tom

+0

当您尝试三种不同的事情时,很难回答一个问题,得到三个不同的错误,但是您只显示一次尝试的代码。您显示的代码中出现错误的原因是由于小写,因为SSIS区分大小写。修复这个问题,显示你现在使用的代码和你从中得到的错误,并且有可能进一步帮助你。 –

回答

1

如果你想从一年前的年数,你需要使用:

YEAR([periodenddate]) = YEAR(GETDATE()) - 1 
YEAR([periodenddate]) = YEAR(GETDATE()) - 2 
etc. 

具有“-1”的括号年度内()函数至少会给你错误的答案。

请注意,您与您的代码的每个版本有不同的错误:

  • 第一张图片显示一个无法找到一个字段由于SSIS是大小写敏感的
  • 第二张图片显示因故障将日期时间戳与一个整数进行比较
  • 第三张图像显示与表达式“GETDATE() - 1”的错误,该错误与前两张图像位于不同的条件表达式组件上。