2016-10-18 2 views
0

주 단위로 수동으로 만든 주별 폴더가 파일을 여기에서 이동할 위치에 하나씩 있습니다. 이제 SSIS를 사용하여이 작업을 자동화하려고합니다.주간 폴더를 만드는 SSIS 식

다음은 16

9월 25일 년 9 월

MY16 우리 9월 4일 16
MY16 우리 9월 11일 16
MY16 우리 SEP 18 16
MY16 우리에게의 폴더 구조입니다 MY는 마케팅 연도를 의미하고 WE는 주를 나타냅니다.

이제 2 월, 9 일, 16 일, 23 일, 30 일 및 다음 달 동안 10 월에 대한 폴더를 만들어야합니다.

MY16 WE OCT 2
16 .. 이것을 식/함수를 작성하는 방법
..

.

답변

0

현재 날짜를 고려하고 요일을 체크 아웃한다고 가정하면 주말에 해당 날짜로 이동하십시오.
먼저 요일 (@ [User :: DayOfWeek] int32)과 월 (@ [User :: VariableMonth] 문자열)의 두 변수를 입력해야합니다. 주 마지막 날의 월과 연도를 계산하는 것으로 가정합니다. :

@ [사용자 :: 된 요일] @

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 

는 [사용자 :: 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":"") 

는 표현이 필요합니다

0 GETDATE와 12,317,

결과()

MY16 WE OCT 23 16 

나는이 도움이되기를 바랍니다.
모든 변수를 하나로 결합 할 수는 있지만 이해하고 표시하기는 어렵습니다.

+0

정말 도움이되었지만 OCT 23 대신 제 표현식에서 10 월 22 일로 날짜가 표시됩니다. @DayOfWeek에 사용 된 표현식에 대해 명확하지 않지만 현재 날짜 값은 4이어야합니다. 3 내 날짜 값이 OCT 22 대신 OCT 22로 바뀝니다. – 0537

+0

주일이 일요일에 시작될 때 다른 기본 표기법이 있습니다. 일요일에 설정 한 DW 계산 결과를 알려주시겠습니까? 1이어야합니다. –

+0

예 returing 1 – 0537

관련 문제