2013-10-04 33 views
0

我試圖從一個數據庫導入一些數據到另一個。一切工作正常,除了毫秒四捨五入到最接近的秒。在SSIS 2008腳本任務中毫秒被四捨五入爲秒

在我的SSIS包中,我有一個記錄集目的地它將查詢結果存儲到全局對象變量中。數據查看器顯示具有其所有時間分量(包括毫秒)的日期正確顯示。這是在數據流任務中。在此之後,我添加了一個腳本任務,它將存儲結果的變量存儲在記錄集目標任務中。我用OleDbDataAdapter來讀取這個變量的行到本地定義的DataTable。完成此操作後,DateTime字段中的任何一個毫秒將四捨五入到秒。任何線索爲什麼會發生這種情況以及如何解決這個問題?

編輯:使用a爲每個容器任務通過記錄集變量的所有行。它仍然將毫秒縮短到最接近的秒。

注意:我正在使用SSIS 2008,.NET 3.5SP1。 記錄集目的地DT_DBTIMESTAMP日期時間字段的數據類型。

+0

我看到你提到綁定到數據庫的數據類型,但DataTable中保存此字段的列的定義類型是什麼?確保它不是int。你的價值觀是否實際上被四捨五入,還是被錯誤地截斷了?這是一個信號標誌。 –

+0

現在,列和行由OleDbDataAdapter自動填充,數據類型爲DataTime。值是四捨五入的,不會被截斷。 – rageit

回答

0

取而代之的是使用DateTime類型使用字符串類型,併爲此使用派生列添加了新列,然後在進行保存調用之前將其轉換回日期時間類型。也可以從源自身檢索datetime作爲字符串。