簡體   English   中英

SSIS派生列替換日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM