2013-12-17 83 views
1

我正在對從德國收到的一些數據進行自動化。日期格式爲DD.MM.YYYY,我需要它爲MM/DD/YYYY。從Excel轉換日期導入

我正在構建一個使用SSIS的導入包,並且我添加了派生列來更改日期格式。

我第一次嘗試使用

(DT_DATE) [CalendarDay] 

,但我一直在派生列得到一個錯誤,當我執行包。

[Derived Column [2]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. 
The "Derived Column" failed because error code 0xC0049064 occurred, and the error 
row disposition on "Derived Column.Outputs[Derived Column Output].Columns[Date]" 
specifies failure on error. 

所以我通過StackExchange的許多例子(所有的,我至少可以找到)移動,並遭到了同樣的錯誤或不期望的輸出。

有任何建議。

+2

將數據作爲varchar導入到登臺表中。然後從該varchar字段更新同一個表中的日期列。 –

+1

我同意丹。你可以使用CONVERT(date,'12 .3.2013',104) –

+0

我創建了一個派生列來轉換Date(DT_WSTR,10)CalendarDay(new Column = DateConv),然後添加另一個派生列以將其轉換爲適當的日期DT_DATE)DateConv。我在第二個派生列中收到了同樣的錯誤。 –

回答

2

1)來源: - 平面文件使用DT_DATE對於日期欄 2)派生列: - 使用替換此

SUBSTRING([列2],4,4)+「/ 「+ SUBSTRING([列2],5,2)+ 」/「 + SUBSTRING([列2],7,2)

並使用DT_DATE IN數據類型

3)目的地: - 使用的日期時間作爲數據類型爲日期

運行它

謝謝!

+1

這裏派生的列是CalendarDay用它提到的子字符串替換它。 – user3112708

+0

我無法使用平面文件源,因爲這是由SAP作業每日更新的Excel文檔。我無法更改單元格的格式,因爲每天都會用SAP提取替換格式。 –

1

嘗試,而不是:

- 問題與日期列...使用DT_DATE,然後在派生列使用串包括

// so date will become 2009/02/05 and then transfer data to destination... 

它會工作了..

謝謝!

Nilesh製作

+0

我很抱歉,但我不明白你在說什麼。你能提供更多的細節嗎? –

0

我通過使用user3112708提供的子字符串方法修改了錯誤,並對編號順序進行了較小的修改。

SUBSTRING(CalendarDay,4,2) + "/" + SUBSTRING(CalendarDay,1,2) + "/" + 
SUBSTRING(CalendarDay,7,4) 

謝謝大家的幫助。