SSIS 2012,阐明日期转换及其运作方式

时间:2015-11-13 23:21:04

标签: sql-server ssis

所有 我有非常简单的包从表到表(所有MS SQL)的数据。但是我遇到了奇怪的事情,我有2个来源和一个目的地表,它适用于1而失败了2。 目的地DDL:

DestTable (
MyDate  date,
...

来源1.直接在SSIS中运行,无需任何转换,例如20151025 - >日期格式

MyDateOK varchar(10)  -- 2015-10-25
in SSIS presented like: Unicode String [DT_WSTR]

来源2.失败时发生截断错误。

MyDateFail datetime  ---2012-07-02 00:00:00.000
in SSIS presented like: DT_DBTIMESTAMP

我试图通过Derived列转换解决这个问题,但这一切都很奇怪,+我无法在DT_DBTIMESTAMP上使用trim,处理此流程的最佳方法是什么? 应该datetime(aka dbtimestamp)在没有任何修复的情况下被日期接受吗? 最好 马里奥

1 个答案:

答案 0 :(得分:1)

源代码1应该映射到SSIS中的DT_STR,否则你可以获得隐式的ANSI到Unicode转换,这可能会变得混乱。

源2应明确转换为DT_DBDATE以仅获取日期部分。

检查此链接:Integration Services Data Types以便大致了解数据库到SSIS数据类型的映射方案。此外,Cast (SSIS Expression)可能会有所帮助。