【问题标题】:ssis script converts System.DateTime to DT_DBTIMESTAMP but does not convert to DT_DBTIMESTAMP2ssis 脚本将 System.DateTime 转换为 DT_DBTIMESTAMP 但不转换为 DT_DBTIMESTAMP2
【发布时间】:2017-05-02 11:33:33
【问题描述】:

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

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

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

“值太大,缓冲区的列数据区放不下。”

虽然 DT_DBTIMESTAMP2 应该大于 DT_DBTIMESTAMP

有没有办法正确传递值?

【问题讨论】:

    标签: c# datetime ssis etl datetime2


    【解决方案1】:

    scale参数默认设置为0

    在我的情况下应该是 7

    【讨论】:

      【解决方案2】:

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

      你也可以做一个解决方法

      不要更改输出列类型,将其保留为 DT_DBTIMESTAMP。

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

      【讨论】:

      • 坦克你。我找到了答案。 scale 参数在我的情况下默认设置为 0,它应该是 7
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2014-08-25
      • 2015-07-09
      • 2016-09-09
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多