2013-05-23 4 views
14

SSIS를 처음 사용하고 GetDate()를 "DD-MM-YYYY"문자열로 변환하려고합니다. 이것은 내가 지금까지 구축 한 표현이다 :SSIS 식 : 날짜를 문자열로 변환

(DT_WSTR, 8) DAY(GETDATE()) + "-" + (DT_WSTR, 8) (MONTH(GETDATE()) - 1) + "-" + (DT_WSTR, 8) YEAR(GETDATE()) 

내가있어 문제는 월()는 변환 달 "23-4-2013"나는 두 문자에서 원하는 단일 문자로, 낮과 같습니다. 어떤 달인지에 관계없이 어떻게 이중 문자로 만들 수 있습니까?

답변

31

SSIS를 들어 당신은 함께 갈 수 :

RIGHT("0" + (DT_STR, 2, 1252) DATEPART("dd" , GETDATE()), 2) + "-" + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("mm" , GETDATE()), 2) + "-" + (DT_STR, 4, 1252) DATEPART("yy" , GETDATE()) 

식 작성기 화면 :

Expression builder screen

+0

감사를 니펫을 발견, 좋은 작품! 어떻게 그 달을 빼는거야? – resolver101

+2

아무런 문제가 없지만, 한 달 빼기, 표현식의 모든'GETDATE()'부분을'DATEADD ("mm", - 1, GETDATE())로 변경하면 나머지 모든 것은 그대로 남습니다. –

+0

표현식을 "mm-dd-yy"+ ".CSV"로 만들려면 어떻게해야합니까? – Si8

0

나처럼, 당신이 표현에서 GETDATE()를 사용하고 겉으로는 불합리한을 위해 노력하고있는 경우 요구 사항 (SSIS/SSDT는 유효한 날짜 (형식 = datetime)으로 SQL Server에 삽입되기를 원하는 날의 매우 세련된 제안이 아니라 나에게 진보 된 것으로 보인다. 싶게이 표현이 작동하려면 :

@[User::someVar] = (DT_WSTR,4)YEAR(GETDATE()) + "-" + RIGHT("0" + (DT_WSTR,2)MONTH(GETDATE()), 2) + "-" + RIGHT("0" + (DT_WSTR,2)DAY(GETDATE()), 2) + " " + RIGHT("0" + (DT_WSTR,2)DATEPART("hh", GETDATE()), 2) + ":" + RIGHT("0" + (DT_WSTR,2)DATEPART("mi", GETDATE()), 2) + ":" + RIGHT("0" + (DT_WSTR,2)DATEPART("ss", GETDATE()), 2) 

는이 코드가 HERE