1

これで私を助けてくれることを願っています!ここからの助けに本当に感謝します!

私がやろうとしているのは、.TXT 区切りファイルをデータベースにインポートするための SSIS パッケージを作成することです。静的ファイルでこれを行う手順は私の頭では明らかですが、ここで重要なことは、インポートは昨日のファイルを使用して毎日行う必要があるということです。ファイル名は、「Informe_De_Recupero_D141027」(日付部分は「141027」)という構造になっています。

次の式を使用して、FileDateName という SSIS パッケージに変数を作成しました。

RIGHT( "00" + (DT_STR, 4 , 1252)DATEPART( "year" , GETDATE() ),2) + "" 
+ RIGHT( "00" + (DT_STR, 2 , 1252)DATEPART( "month" , GETDATE() ) , 2 ) 
+ "" + (DT_STR, 2 , 1252) DATEPART( "day" , getdate()-1) 

しかし、このシナリオでは -1 は機能しません。次のエラーが発生します。

データ型 "DT_DBTIMESTAMP" は二項演算子 "-" では使用できません オペランドの一方または両方の型は、操作でサポートされていません。この操作を実行するには、一方または両方のオペランドをキャスト演算子で明示的にキャストする必要があります。

二項演算 "Getdate()-1" の結果の型を設定しようとすると、エラー コード 0xc0047081 で失敗しました 関数 "DATEPART" の評価がエラー コード 0xc0047084 で失敗しました

どうすれば解決できますか?別の解決策を教えてください。

前もって感謝します!!

4

1 に答える 1

1

SSIS 式言語は getdate()-1 をサポートしていません。DATEADD() を使用する必要があります。

+ (DT_STR, 2 , 1252) DATEPART( "day" , Dateadd("day",-1,getdate())) 

また、これは日付部分ごとに行う必要があります。年の初めに 141231 になると、150131 に変換されます。

最後に、SQL 実行タスクでこれを行う方が簡単です。

Select Right(Convert(char(8), getdate()-1,112),6)
于 2014-10-28T15:55:28.877 に答える