求助:无法映射Date列,数据类型不匹配(改类型仍未解决)
解决SSIS Lookup组件日期列映射类型不匹配问题
问题重现
标题:Microsoft Visual Studio
Cannot map the input column, 'Date', to the lookup column, 'Date', because the data types do not match.
已确认SSMS中目标表的Date列数据类型,尝试将输入数据源的Date列改为date等多种日期类型后,仍无法完成Lookup组件的列映射。
可行解决步骤
- 核对两端精确数据类型:SSIS对数据类型匹配要求严格,不仅是大类(日期型),还要看具体子类型。比如SSMS里的
date对应SSIS的DT_DBDATE,datetime对应DT_DBTIMESTAMP。打开数据源和Lookup目标的高级编辑器,查看输出/查找列的精确类型,必须完全一致。 - 强制转换数据类型:如果输入列类型无法直接匹配,在Lookup前添加「数据转换」或「派生列」组件,把输入列转成和查找列一致的类型。比如派生列表达式写
(DT_DBDATE)Date,生成新列后用这个新列做映射。 - 检查数据源原始数据:如果是从平面文件导入,即使连接管理器设置了日期类型,也要确认原始数据格式统一(比如都是yyyy-MM-dd),没有无效日期(如0000-00-00、非日期字符串),脏数据会导致类型检测异常。
- 刷新数据源连接:修改数据类型后,右键数据源连接选择「刷新」,确保SSIS读取到最新的元数据,再重新尝试映射。
内容的提问来源于stack exchange,提问作者emmaS
相关产品推荐
相关产品推荐

