因此,我对这些东西还很陌生,但需要解决一些问题。我想做的是从平面文件源中提取源文件,但是所有源文件中的日期都被格式化为YYYYMMDD,因此我插入了派生列任务并创建了一个表达式,以格式化所有日期从YYYYMMDD到YYYY-的列。 MM-DD,看起来像这样:
LEFT(ISSUE_DT,4) + "-" + SUBSTRING(ISSUE_DT,5,2) + "-" + RIGHT(ISSUE_DT,2)
除了它的数据类型为DT_WSTR之外,其他都很好,所以我参加了“列转换”任务以将DT_WSTR转换为DT_DATE,但是我不断遇到以下错误:
[Columns Conversion [1]] Error: Data conversion failed while converting
column "ISSUE_DT Formatted" (258) to column "Copy of ISSUE_DT Formatted"
(16). The conversion returned status value 2 and status text "The value
could not be converted because of a potential loss of data.".
我尝试打开高级编辑器并导航到“数据转换输出列”,并尝试将“数据类型属性”下的DataType更改为DT_DATE,但仍然是相同的错误。
我缺少什么或做错了什么?
答案 0 :(得分:0)
您有一些日期格式不符合您的SSIS软件包的预期格式。也许个位数的月份或日期没有前导0。这种情况肯定会导致此特定错误。
以今天为例,如果一个月或几天的数字没有前导零,那么您将拥有2018918而不是20180918。如果看不到数据,我不能保证这是确切的问题,但是就像这个。将字符串转换为日期时发生错误。因此,继续上面的示例,在将“衍生列” ISSUED_DT格式化后,其值将为“ 2018-91-18”,这当然不是有效日期,并且会导致错误。