1

SSISパッケージを持っています。ソースはSQLクエリです。宛先はテーブルです。パッケージは、宛先テーブルの列をdatetimeからdatetimeoffset(0)に変更するまで機能しました。

現在、この特定の列で「データ値がプロバイダーによって使用されるタイプをオーバーフローしたため、変換に失敗しました」というエラーですべてのレコードが失敗します。

ソースクエリの値はgetdate()です。TODATETIMEOFFSET(getdate()、'-05:00')を試しましたが成功しませんでした。

実際、これまでに機能したのは、ソースクエリに次のコードをハードコーディングすることだけです。

cast('3/14/12' as datetime)

他の唯一の興味深い情報は、別のサーバーに対してソースクエリを実行したときにパッケージが正常に機能したことです。これは、設定が関係している可能性があることを意味します。ただし、2つのサーバー間に明らかな違いはありません。

4

2 に答える 2

2

これに対処するために「データ変換コンポーネント」を追加することを提案しようとしましたが、宛先のみを変更したため、ソースクエリを次のように変更できることを意味します。

select cast(YOUR_DATE_COLUMN as datetimeoffset(0))
于 2012-03-14T15:14:07.777 に答える
0

他の誰かが探している場合は、ソースがSQL 2005にある場合に機能する代替ソリューションを見つけました(datetimeoffsetはサポートされていません)。

select dateAdd(minute,datediff(minute,0,getutcdate()),0)

目的は、精度を下げることです。確かに私も秒を失いますが、上記の行を秒で試してみると、オーバーフローエラーが発生します。

于 2012-03-27T15:33:48.787 に答える