2016-10-18 5 views
0

ファイルをここに移動する週に1回、週単位のフォルダを手動でシステムに作成しています。 SSISを使用してこの作業を自動化したいと考えています。以下はSSIS式を使用して週単位のフォルダを作成する

は9月

WEは9月4日16
MY16 WE 9月11日16
MY16 WE 9月18日16
MY16 WE 9月25日16

MY16月のフォルダ構造ですMYはマーケティング年度を意味し、WEは週を意味します。

ここでは、2月、9月、16日、23日、30日、および今後数か月間の10月のフォルダを作成する必要があります。

MY16 WE 10月2日16
..
。これについての発現/機能の記述方法を

答えて

0

現在の日付を考慮して曜日をチェックアウトすると仮定すると、その週の終わりにその日を移動します。
第1週の曜日(@ [User :: DayOfWeek] int32)と月(@ [User :: VariableMonth]文字列)の2つの変数を導入する必要があります。週の最終日の月と年を計算すると仮定します

0:[ユーザー:: VariableMonth]

(MONTH(DATEADD("DD", @[User::DayOfWeek], getdate())) == 1 ? "JAN" : MONTH(DATEADD("DD", @[User::DayOfWeek], getdate())) == 2 ? "FEB" : MONTH(DATEADD("DD", @[User::DayOfWeek], getdate())) == 3 ? "Mar" : 

    MONTH(DATEADD("DD", @[User::DayOfWeek], getdate())) == 4 ? "APR" : MONTH(DATEADD("DD", @[User::DayOfWeek], getdate())) == 5 ? "MAY" : MONTH(DATEADD("DD", @[User::DayOfWeek], getdate())) == 6 ? "JUN" : 

    MONTH(DATEADD("DD", @[User::DayOfWeek], getdate())) == 7 ? "JUL" : MONTH(DATEADD("DD", @[User::DayOfWeek], getdate())) == 8 ? "AUG" : MONTH(DATEADD("DD", @[User::DayOfWeek], getdate())) == 9 ? "SEP" : 

    MONTH(DATEADD("DD", @[User::DayOfWeek], getdate())) == 10 ? "OCT" : MONTH(DATEADD("DD", @[User::DayOfWeek], getdate())) == 11 ? "NOV" : MONTH(DATEADD("DD", @[User::DayOfWeek], getdate())) == 12? "DEC":"") 

必要な表現@ [ユーザー::のDayOfWeek]

DATEPART("dw", getdate()) == 1 ? 6 
: DATEPART("dw", getdate()) == 2 ? 5 
: DATEPART("dw", getdate()) == 3 ? 4 
: DATEPART("dw", getdate()) == 4 ? 3 
: DATEPART("dw", getdate()) == 5 ? 2 
: DATEPART("dw", getdate()) == 6 ? 1 
: 0 

@

私はこのヘルプを願っていますGETDATE()

MY16 WE OCT 23 16 

結果。
すべての変数を1つにまとめることもできますが、理解して表示することは困難です。

+0

これは本当に助けになりましたが、OCT 23の代わりに私の表現では、私は10月22日として日付を取得しています。私は@DayOfWeekで使用されている式について明確ではありません。 3私の日付で値がOCT 22ではなくOCT 22に変更されます。 – 0537

+0

週が日曜日に始まるときはおそらく別のデフォルト表記があります。日曜日に設定したDWが返される値を教​​えてください。 1にする必要があります。 –

+0

はいそれは退屈です1 – 0537

関連する問題