SSIS到SQL DateTime数据类型转换失败

时间:2016-01-26 12:37:27

标签: sql-server ssis

我是MS SQL Server 2014的初学者。需要一些从SSIS到SQL服务器的数据类型转换建议。

我正在使用DATE TIME字段,一个示例值:'01272016122044123',格式为'MMDDYYYYHHMMSSsss'

从SSIS我使用数据类型“数据库时间戳精度[DT_DBTIMESTAMP2]”,在SQL Server中我使用了数据类型“DateTime2(7)”。

当我尝试从SSIS导入数据时,它给出了错误“OLE DB记录可用。来源:”Microsoft SQL Server Native Client 11.0“Hresult:0x80004005描述:”日期格式无效“。

返回的列状态为:“转换失败,因为数据值溢出指定的类型。”。

需要知道我哪里出错?

由于 Syed Ayaz Mahmud

1 个答案:

答案 0 :(得分:0)

SSIS对于将字符串转换为日期时间非常挑剔。我会在数据流中执行脚本任务:

  1. 从数据库中选择一个字符串
  2. 添加脚本组件转换
  3. 在输出缓冲区中创建一个“精确数据库时间戳[DT_DBTIMESTAMP2]”的列,确保将比例调整为3
  4. 在脚本中使用以下内容:

    using System.Globalization;
    
    public override void Input0_ProcessInputRow(Input0Buffer Row)
    {
        CultureInfo provider = CultureInfo.InvariantCulture;
        Row.newDate = DateTime.ParseExact(Row.MyDate, "MMddyyyyhhmmssfff", provider);
    }