2014-10-16 2 views

답변

2

SQL Server Integration Services에 대한 내용을 전제로하여 파생 열 변환을 통해 수행 할 수 있습니다.

Derived Column Transformation을 데이터 흐름 파이프 라인으로 끌어서 소스를 연결하십시오.

enter image description here

최대를 열고 이름을주고 <add as new column>을 선택, 새로운 필드를 추가합니다. 당신의 필드의 이름으로 'SrcTime'을 대체 식 상자에 다음 수식을 붙여 넣기 :이 표현은 소수점 분 (예, 1시 1분 30초는 61.5가된다)

(DT_NUMERIC,6,2)(((DT_I4)LEFT(SrcTime,2) * 60) + 
((DT_I4)SUBSTRING(SrcTime,4,2)) + 
((DT_NUMERIC,4,2)RIGHT(SrcTime,2)/60)) 

편집에 시간 필드를 변환합니다 : 당신이 초를 필요로하는 경우,없는 분 (1시 1분 30초는 3690.00이된다), 당신은 할 공식을 변경할 수 :

(DT_NUMERIC,10,2)(((DT_I4)LEFT(SrcTime,2) * 3600) + 
((DT_I4)SUBSTRING(SrcTime,4,2) * 60) + 
((DT_NUMERIC,4,2)RIGHT(SrcTime,2))) 

편집이 다시 : 버전을 기반으로 LEFT() 함수가에서 사용할 수 없습니다 표현식 편집기. 대신에이 수식을 사용하여이 올바른 형식이있을 것이다 당신이 '파생 열 이름'에 준 이름으로, 파이프 라인에 새 열을 추가합니다

(DT_NUMERIC,10,2)(((DT_I4)SUBSTRING([TALK TIME],1,2) * 3600) + 
((DT_I4)SUBSTRING([TALK TIME],4,2) * 60) + 
((DT_NUMERIC,4,2)RIGHT([TALK TIME],2))) 

enter image description here .

+0

광산에는 LEFT 함수가 없습니다. 나는 권리가 있지만 왼쪽은 아니다. – d90

+0

어떤 버전을 사용하고 있습니까? – AHiggins

+0

난 2008r2 버전을 사용 중입니다. – d90

0

이것은 타임 스탬프의 문자열 데이터 유형을 변환하여 얻을 수도 있습니다. 그리고 나서 유도 된 열 표현식에서 다음 표현식을 사용하십시오. * 3600 + DatePart ("mi", [통화 시간]) * 60 + DatePart ("ss", [Talk 시간])

위의 식은 숫자 데이터를 숫자로 반환합니다.

관련 문제