如何在SSIS中将NUMBER数据类型转换为DATE数据类型

时间:2018-09-10 05:32:35

标签: ssis ssis-2012

嗨,我有csv文件数据,例如:-(ActiveDate = 20180105),所以我想将此列保存到数据库中。在我的数据库列中,数据类型为 datetime

在将数据转换用作 DT_Date 时,出现此错误:-

  

转换返回状态值2和状态文本“值   由于潜在的数据丢失而无法转换。

那么我该如何以 datetime 将ActiveDate数据从excel导入到我的数据库中?

你能帮我吗?。

1 个答案:

答案 0 :(得分:1)

您必须首先将YYYYMMDD列中的Data Conversion转换为String,如下所示:

  Input Column   Output Column   Data Type                      Length 
  IntDate       StringDate      Unicode string [DT_WSTR]        50  

然后可以在Derived Column元素中使用此公式将新的字符串列转换为实际日期:

(DT_DATE)(SUBSTRING(StringDate,1,4) + "-" + SUBSTRING(StringDate,5,2) + "-" + SUBSTRING(StringDate,7,2))

对于日期列为空的数据,请使用以下公式,该公式将在当前日期更改为空:

isnull(StringDate)? GETDATE() : (DT_DATE)(SUBSTRING(StringDate,1,4) + "-" + SUBSTRING(StringDate,5,2) + "-" + SUBSTRING(StringDate,7,2))

结果:

IntDate     StringDate  DateDate
20170809    20170809    2017-08-09 00:00:00.0000000