【问题标题】:Convert Date from Excel Import从 Excel 导入转换日期
【发布时间】:2014-01-05 19:22:06
【问题描述】:

我正在对从德国收到的一些数据进行自动化处理。日期格式为 DD.MM.YYYY,我需要它为 MM/DD/YYYY。

我正在使用 SSIS 构建一个导入包,并添加了一个派生列来更改日期格式。

我第一次尝试使用

(DT_DATE) [CalendarDay]

但是当我执行包时,派生列总是出现错误。

[Derived Column [2]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.
The "Derived Column" failed because error code 0xC0049064 occurred, and the error 
row disposition on "Derived Column.Outputs[Derived Column Output].Columns[Date]" 
specifies failure on error.

因此,我浏览了 StackExchange 中的许多示例(至少我能找到的所有示例)并遇到相同的错误或不是所需的输出。

任何建议。

【问题讨论】:

  • 将数据作为 varchar 导入临时表。然后从该 varchar 字段更新同一表中的日期列。
  • 我同意丹的观点。你可以使用 CONVERT(date, '12.3.2013',104)
  • 我创建了一个派生列来转换日期 (DT_WSTR, 10)CalendarDay (new Column = DateConv) 然后添加另一个派生列来将其转换为正确的日期 (DT_DATE)DateConv。我在第二个派生列中收到了同样的错误。

标签: sql excel date ssis


【解决方案1】:

1) 来源:- 平面文件使用 DT_date 作为日期列 2) 派生列:- 将其替换为 using

SUBSTRING([Column 2],4,4) + "/" + SUBSTRING([Column 2],5,2) + "/" + SUBSTRING([Column 2],7,2)

并使用 DT_DATE IN 数据类型

3) 目的地:- 使用日期时间作为日期的数据类型

运行它

谢谢!

【讨论】:

  • 这里派生列是 CalendarDay 用提到的子字符串替换它。
  • 我不能使用平面文件源,因为这是一个由 SAP 作业每天更新的 Excel 文档。我无法更改单元格的格式,因为格式将被每天的 SAP 提取替换。
【解决方案2】:

试试吧:

-- 日期列问题...使用 DT_Date,然后在派生列中使用子字符串来包含

 // so date will become 2009/02/05 and then transfer data to destination... 

会成功的..

谢谢!

尼禄

【讨论】:

  • 我很抱歉,但我不明白你在解释什么。你能提供更多细节吗?
【解决方案3】:

我通过使用 user3112708 提供的子字符串方法修复了该错误,并对编号顺序进行了小幅改动。

SUBSTRING(CalendarDay,4,2) + "/" + SUBSTRING(CalendarDay,1,2) + "/" + 
SUBSTRING(CalendarDay,7,4)

感谢大家的帮助。

【讨论】:

    猜你喜欢
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    相关资源
    最近更新 更多