【问题标题】:Converting DT_WSTR to DT_DATE将 DT_WSTR 转换为 DT_DATE
【发布时间】:2018-09-21 13:32:33
【问题描述】:

所以我对这些东西很陌生,但解决了一些问题。我想做的是从平面文件源中提取源文件,但是我所有源文件中的日期都被格式化为 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.".

我尝试打开高级编辑器并导航到数据转换输出列并尝试将数据类型属性下的数据类型更改为 DT_DATE 但仍然是同样的错误..

我错过了什么或做错了什么?

Data Flow

Formatted Dates

Column Conversion

Column Conversion Advanced Editor

【问题讨论】:

  • 你好。如果在 MS SQL 中将您的 YYYY-MM-DD 样本之一转换为日期没有错误,那么此错误是针对与 YYYY-MM-DD 不同的数据中的记录。

标签: ssis-2012 date-conversion


【解决方案1】:

您有一些日期不是您的 SSIS 包所期望的格式。也许个位数的月份或日期没有前导 0。这种情况肯定会导致此特定错误。

以今天为例,如果个位数的月份或天数没有前导零,则您有 2018918 而不是 20180918。没有看到数据,我不能保证这是确切的问题,但它类似于这。将字符串转换为日期时发生错误。因此,继续上面的示例,在您的派生列 ISSUED_DT 格式化后,其值为“2018-91-18”,这当然不是有效日期并导致错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2020-11-06
    • 2016-06-17
    相关资源
    最近更新 更多