BIDS [SQL Server 2008r2]를 사용하여 CSV에서 데이터를 가져옵니다. hh : mm : ss를 숫자로 변환하여 SQL Server로 가져와야합니다. 예를 들어BIDS의 hh : mm : ss를 숫자 초로 변환하십시오.
0시 1분 5초 = 65
현재 단계 :
변환은 다음과 같습니다.
BIDS [SQL Server 2008r2]를 사용하여 CSV에서 데이터를 가져옵니다. hh : mm : ss를 숫자로 변환하여 SQL Server로 가져와야합니다. 예를 들어BIDS의 hh : mm : ss를 숫자 초로 변환하십시오.
0시 1분 5초 = 65
현재 단계 :
변환은 다음과 같습니다.
SQL Server Integration Services에 대한 내용을 전제로하여 파생 열 변환을 통해 수행 할 수 있습니다.
Derived Column Transformation을 데이터 흐름 파이프 라인으로 끌어서 소스를 연결하십시오.
최대를 열고 이름을주고 <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)))
.
이것은 타임 스탬프의 문자열 데이터 유형을 변환하여 얻을 수도 있습니다. 그리고 나서 유도 된 열 표현식에서 다음 표현식을 사용하십시오. * 3600 + DatePart ("mi", [통화 시간]) * 60 + DatePart ("ss", [Talk 시간])
위의 식은 숫자 데이터를 숫자로 반환합니다.
광산에는 LEFT 함수가 없습니다. 나는 권리가 있지만 왼쪽은 아니다. – d90
어떤 버전을 사용하고 있습니까? – AHiggins
난 2008r2 버전을 사용 중입니다. – d90