ssis 脚本将 System.DateTime 转换为 DT_DBTIMESTAMP 但不会转换为 DT_DBTIMESTAMP2

ssis script converts System.DateTime to DT_DBTIMESTAMP but does not convert to DT_DBTIMESTAMP2

当我尝试通过此代码将 DateTime.Now 值传递给 DT_DBTIMESTAMP 字段时

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    Output0Buffer.AddRow();
    Output0Buffer.Dt = DateTime.Now;
}

效果很好。但是当 Output0Buffer.Dt 是 DT_DBTIMESTAMP2 类型时,我收到一条消息:

"The value is too large to fit in the column data area of the buffer."

尽管 DT_DBTIMESTAMP2 应该大于 DT_DBTIMESTAMP

有没有办法正确传递值?

搜索后我找到了这篇文章:Mapping C# DateTime to SQL Server datetime2 via SSIS,我想这就是你要找的。

你也可以做一个解决方法

不要更改输出列类型,保留它 DT_DBTIMESTAMP。

并且在脚本组件之外,添加一个数据转换转换并将输出列转换为DT_DBTIMESTAMP2

比例参数默认设置为0

在我的例子中应该是 7