所有 我有非常简单的包从表到表(所有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)在没有任何修复的情况下被日期接受吗? 最好 马里奥
答案 0 :(得分:1)
源代码1应该映射到SSIS中的DT_STR
,否则你可以获得隐式的ANSI到Unicode转换,这可能会变得混乱。
源2应明确转换为DT_DBDATE
以仅获取日期部分。
检查此链接:Integration Services Data Types以便大致了解数据库到SSIS数据类型的映射方案。此外,Cast (SSIS Expression)可能会有所帮助。