SSIS错误“转换失败,因为数据值溢出了指定的类型”

时间:2019-01-22 09:07:14

标签: sql-server datetime ssis etl script-task

我正在使用ssis将txt文件解析为sql服务器。我使用脚本任务将字符串示例"20190523100520"(类型:yyyy-MM-dd HH:mm:ss)转换为日期时间(表sql中的数据类型)。

但是我得到了错误:

  

[OLE DB目标[68]]错误:“ OLE DB存在错误       Destination.Inputs [OLE DB目标输入] .Columns [NewEffectiveTS_NXX_X] on

     

OLE DB Destination.Inputs [OLE DB目标输入]。列状态       返回为:“转换失败,因为数据值溢出了指定的类型。

在脚本任务中,标记输入和输出,我对列[DT_DBTIMESTAMP]使用数据库时间戳[NewEffectiveTS_NXX_X]

每个人都帮助我。非常感谢!

2 个答案:

答案 0 :(得分:1)

您是否尝试将错误输出重定向到平面文件,并检查行中的datetime字段中是否包含错误的数据。如果找不到任何问题,请尝试通过插入“ /”将字符串设置为有效格式, ”和“:”,例如您的字符串“ 20190523100520”将变为“ 2019/05/23 10:05:20”

答案 1 :(得分:1)

要在脚本中将此值转换为datetime数据类型,可以使用DateTime.ParseExact()函数:

DateTime.ParseExact([Column],"yyyyMMddHHmmss",System.Globalization.CultureInfo.InvariantCulture)

因为不能通过将string类型的列映射到datetime类型的另一列来将字符串值20190523100520隐式转换为datetime。