2014-02-06 51 views
0

我發佈了一個與數據轉換相關的問題。 現在我正在改寫如下的問題。SSIS中的數據轉換

我有一個文本fle,我有日期和時間作爲字符串。 所以我需要讀那條線(日期+時間) 而顛倒在雙

我們可以在下面的例子中看到。

"Date"  "Time"  "Converted Double" 
"01/31/2014" "30:00.0" to "41670.3541666667" 

現在我已經完成了如下的轉換。

「日期G」, 「時間G」,Concatinated_Date_Time」

「41670.0000000000」, 「00:00.0」, 「2014年1月31日00:00.0」,

我用跟隨着轉換日期摹 (DT_NUMERIC,16,10)(DT_DATE)[日期G]

但是,當我嘗試做相同的 「Concatinated_Date_Time」 它給了我錯誤。 我需要 「Concatinated_Date_Time」 雙形式(41670.548400000)

請他幫我。

謝謝

+1

它可能會幫助我想象你正在嘗試,如果你給當前的文件,你會看到當它conveted到兩倍一些樣本數據做。我可以想不出爲什麼你想把日期時間變成雙倍。儘管如此,我還是懷疑你在那裏有一些價值,它無法弄清楚如何轉換。 – HLGEM

+0

我改變了它,請參閱上文。 –

回答

0

最後我想通了!

我遵循以下folowing步驟。

  1. 轉換字符串 「DATE G」 到DT_DATE
  2. DATEADD( 「HH」,0,outputfrom步驟1)
  3. SUBSTRING( 「TIME G」,1,2)存儲在一個輸出端, SUBSTRING(「TIME G」,3,2)存儲在一個輸出中,SUBSTRING(「TIME G」,5,3)存儲在一個輸出中

  4. ADD all using DATEADD()and type cast the output to DT_DATE as它的輸出是DT_DBTIMESTAMP,它不能直接轉換爲DT_Numeric。

  5. 類型步驟4

投射到(DT_NUMERIC)輸出感謝所有

普萊舍讓我知道,如果它不很好地解釋。

謝謝大家

+0

你應該在這裏接受你自己的答案。 –

+0

您應該可以通過將值與「00:」鑄造到DT_DATE然後轉換爲數字來完成此操作。這是全部一行,只需要1個派生列(DT_NUMERIC)((DT_DATE)(DateCol +「00:」+ TimeCol)) – Matt