2017-10-20 154 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」的錯誤,該錯誤與前兩張圖像位於不同的條件表達式組件上。