2014-02-06 53 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