2

私はssisパッケージの日付部分に固執しました

パッケージに 3 つの変数を作成し、これらの式を使用しました

1) @Days - 8

2) @DateDiff -  (DT_WSTR,4)YEAR(GETDATE()) + "-"    + RIGHT("0" + (DT_WSTR,2)MONTH(GETDATE()), 2)+ "-"+   RIGHT("0" + (DT_WSTR,2)DAY(DATEADD("dd", - @[User::Days] , GETDATE())), 2)

3) @datestarted - DATEDIFF("dd", (DT_DBTIMESTAMP) @[User::DiffDate],(DT_DBTIMESTAMP) @[User::PatDate]   ) 

ここで patCon は getdate() と同じです。

ここで、Day を 30 まで変更すると、2013-06-17 に移動せず、同じ日付 2013-07-17 が表示されます (gatedate() が 2013-07-17 であるとします)。

Days - 50 を配置した場合、日付を動的に変更する式が必要なので、月も変更する必要があります。日数 - 500 の場合、年だけでなく月も変更されます。

詳細については、私に知らせてください。あなたの時間とヘルプに感謝します。私はこれを T-SQL 側ではなくパッケージ側でのみ開発したいと考えています。

--343

4

1 に答える 1

2

日の部分文字列が取得される部分にのみ適用しますDATEADD。影響を受ける場合は、月と年にも適用する必要があります。私はこれだと信じています:

(DT_WSTR,4)YEAR(DATEADD("dd", - @[User::Days] , GETDATE())) + "-"    
+ RIGHT("0" + (DT_WSTR,2)MONTH(DATEADD("dd", - @[User::Days] , GETDATE())), 2) + "-"
+   RIGHT("0" + (DT_WSTR,2)DAY(DATEADD("dd", - @[User::Days] , GETDATE())), 2)
于 2013-07-17T21:45:53.163 に答える