2017-05-02 98 views
2

當我試圖通過這個代碼SSIS腳本轉換的System.DateTime到DT_DBTIMESTAMP但不能轉換爲DT_DBTIMESTAMP2

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

它運作良好,通過DateTime.Now價值DT_DBTIMESTAMP場。但是當Output0Buffer.Dt是類型DT_DBTIMESTAMP2的,我收到一條消息:

「的值過大,以適應在所述緩衝器的列數據區域」。

screenshot

雖然DT_DBTIMESTAMP2應該比DT_DBTIMESTAMP大

是有辦法妥善傳遞價值?

回答

2

尺度參數是通過我的情況下默認

設置爲0,它應該是7

enter image description here

1

搜索後,我發現這篇文章:Mapping C# DateTime to SQL Server datetime2 via SSIS,ithink這是你正在尋找。你

也可以做一個變通方法

不要改變輸出列類型,離開它DT_DBTIMESTAMP。

和腳本組件外,添加數據轉換轉換並轉換輸出列DT_DBTIMESTAMP2

+0

坦克你。我找到了答案。 在我的情況下,defauld 將scale參數設置爲0它應該是7 – iliyesku

相關問題