2017-02-27 1 views
1

대상 열 데이터해야 하나 형식 : SQL 서버의 대상 테이블에 하나의 형식으로 HIREDATE 열을 수행하는 방법에는 SSIS의 특정 형식으로 날짜 형식을 변환

enter image description here

.

+0

소스 형식은 모호하다. '01/10/2008'은 10 월 1 일 또는 1 월 10 일입니까? 당신은 당신이 그것을 개조 할 수 없다는 것을 모릅니다. 또한 * 잊지 * 날짜 '형식'에 대한 SQL Server에서. 'DATE '올바른 데이터 유형을 선택하고 시각적 형식을 잊어 버리십시오. –

+0

플랫 파일의 각 레코드에 사용 된 날짜 형식을 결정하는 방법이 없으면 올바르게 수행 할 수 없습니다. @ Nick.McDermaid가 썼 듯이, 그 날이 13 일 미만인 모든 날짜는 애매합니다. 또한 [datetime 데이터 형식은 표시 형식을 저장하지 않습니다.] (http://stackoverflow.com/questions/30032915/how-to-cast-the-datetime-to-time/30033028#30033028) –

+0

If yyyy/mm/dd 형식으로 변경할 수있는 것보다 yyyy/mm/dd 또는 dd/mm/yyyy 형식의 두 가지 유형 만 있습니다. @ Nick.McDermaid –

답변

0

스크립트에서 dataType와 DT_DBTIMESTAMP

로 새로운 출력 열 outHireDate를 추가, 입력 열로 스크립트 구성 요소, 마크 HireDate를 추가하면 다음과 같은 쓰기 :

Dim strFormats() as string = {"dd/MM/yyyy","yyyy/MM/dd","MM/dd/yyyy"} 
:

는 형식의 배열을 선언

그리고 Input0_ProcessInputRow 하위 용도 DateTime.ParseExact 다음과 같은 기능 :

(210)
Row.OutHireDate = DateTime.ParseExact(Row.HireDate,strFormats,New System.Globalization.CultureInfo("en-GB")) 

월과 일이 13 (예 : 2010년 1월 3일)보다 낮은 때 충돌이 발생할 수

중요

+0

어떤 행에 어떤 형식이 있는지 알지 못하는 것은 의미가 없습니다. –

+0

@NickMcDermaid 나는 이것에 동의한다, 이것은 내 대답의 중요한 주를 의미한다. – Hadi

+0

"if"문에서 먼저 유효성 검사를하거나 try parse (필요한 경우 중첩)를 수행하는 것은 어떨까? –

관련 문제