SSIS 到 SQL 日期时间数据类型转换失败
SSIS to SQL DateTime data type conversion failing
我是 MS SQL 服务器 2014 的初学者。需要一些关于从 SSIS 到 SQL 服务器的数据类型转换的建议。
我正在使用 DATE TIME 字段,示例值:'01272016122044123',格式为 'MMDDYYYYHHMMSSsss'
我在 SSIS 中使用了数据类型 "database timestamp with precision [DT_DBTIMESTAMP2]",在 SQL 服务器中我使用了数据类型 "DateTime2(7)"。
当我尝试从 SSIS 导入数据时出现错误 "An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Invalid date format".
返回的列状态为:"Conversion failed because the data value overflowed the specified type."。
需要知道我到底哪里出错了吗?
谢谢
赛阿亚兹玛末
SSIS 对将字符串转换为日期时间非常挑剔。我会在数据流中执行脚本任务:
- Select 来自数据库的字符串值
- 添加脚本组件转换
- 在输出缓冲区中创建一个 "database timestamp with precision [DT_DBTIMESTAMP2]," 的列,确保将比例调整为 3
在脚本中使用以下内容:
using System.Globalization;
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
CultureInfo provider = CultureInfo.InvariantCulture;
Row.newDate = DateTime.ParseExact(Row.MyDate, "MMddyyyyhhmmssfff", provider);
}
我是 MS SQL 服务器 2014 的初学者。需要一些关于从 SSIS 到 SQL 服务器的数据类型转换的建议。
我正在使用 DATE TIME 字段,示例值:'01272016122044123',格式为 'MMDDYYYYHHMMSSsss'
我在 SSIS 中使用了数据类型 "database timestamp with precision [DT_DBTIMESTAMP2]",在 SQL 服务器中我使用了数据类型 "DateTime2(7)"。
当我尝试从 SSIS 导入数据时出现错误 "An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Invalid date format".
返回的列状态为:"Conversion failed because the data value overflowed the specified type."。
需要知道我到底哪里出错了吗?
谢谢 赛阿亚兹玛末
SSIS 对将字符串转换为日期时间非常挑剔。我会在数据流中执行脚本任务:
- Select 来自数据库的字符串值
- 添加脚本组件转换
- 在输出缓冲区中创建一个 "database timestamp with precision [DT_DBTIMESTAMP2]," 的列,确保将比例调整为 3
在脚本中使用以下内容:
using System.Globalization; public override void Input0_ProcessInputRow(Input0Buffer Row) { CultureInfo provider = CultureInfo.InvariantCulture; Row.newDate = DateTime.ParseExact(Row.MyDate, "MMddyyyyhhmmssfff", provider); }