![](/img/trans.png)
[英]SSIS Expression in a Derived Column Transformation to replace a carriage return with nothing
[英]SSIS Derived Column Replace Dates
狀況概述:我有兩個數據庫(一個是DB2,一個是MSSQL),並且我正在使用SSIS包通過作業將數據從一個數據庫傳送到另一個數據庫。 在我們的SQL表中,日期時間字段設置為SmallDateTime(幾年和幾年前,目前無法更改為DateTime)。 現在,我們得到的日期將是2099年(1/1/2099)年,這是失敗的,因為SmallDateTime只能進入06/2079 11:59:59的MaxDate。
我/我們的解決方案是使用“派生列”變換檢查日期,如果該日期超過2078年,則將其設置為null。 還建議在檢查日期之前檢查是否為空。
我嘗試這樣做
[Derived Column Name] [Derived Column ] [Expression]
[ MyDate ] [Replace "MyDate"] [MyDate == "" ? NULL(DT_WSTR,5) : MyDate]
[ VerifiedDates ] [Add As New Column] [VerifiedDates == YEAR((DT_DBDATE)MyDate) > = 2078 ? NULL(DT_WSTR,10) : MyDate]
但這有兩個原因。 不僅表達錯誤,而且還不允許我像在第一次運行中那樣替換“ MyDate”列。 我不能多次更換色譜柱嗎? 這些任務是否同時發生?
由於這個問題,我試圖通過表達式替換日期
[ MyDate ][Replace "MyDate"][YEAR((DT_DBDATE)MyDate) >= 2078 ? NULL(DT_WSTR, 10) : MyDate]
以及
[ MyDate ][Replace "MyDate"][MyDate == YEAR((DT_DBDATE)MyDate) >= 2078 ? NULL(DT_WSTR, 10) : MyDate]
但是這些似乎都不是正確的語法...誰能指出我的所在?
我也很難找到語法的良好資源,目前正在使用此ref
您是否嘗試過DATEPART
函數
[ MyDate ][Replace "MyDate"][ DATEPART("yyyy", (DT_DBTIMESTAMP)MyDate) >= 2078 ? NULL(DT_WSTR, 10) : MyDate ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.