문제

ASCII 출력 파일을 작성하고 있습니다. 일부 정보와 두 개의 필드에는 날짜와 시간이 포장 된 소수 필드 (COMP-3)에있을 필요가 있습니다.SQL 및 SSIS를 사용하여 내 파일을 생성합니다.

Field Name     Format       Length    Picture
Date           YYYYMMDD     5         S9(8) C-3
Time           HHMMSS       4         S9(6) C-3
.

나는 여러 사이트를 검색했으며 아직도 날짜 / 시간을 포장 된 소수점 필드로 변환하는 방법을 알아낼 수 없습니다.도움이 크게 감사 할 것입니다.

다음 사이트 http://www.simotime.com/datapk01.htm#tablePackedDecimal 포장 된 필드에 대한 정보는 제공되었습니다.나는 포장 된 필드가 사용되는 방법을 이해하지만 필드를 포장하는 방법을 실제로 이해하지 못합니다.감사합니다!

도움이 되었습니까?

해결책

INTEGER DATE (예 : 20120123)를 문자열로 저장하는 경우 16 진수 표현은 0x3230313230313233이 될 것입니다. 여기서 32= 2, 30= 0 등이 8 바이트 (즉 32 30 3233 32 33 33 33 33 33 33 32)...에

포장 된 10 진수 형식의 동일한 문자열의 표현은 다음과 같습니다. 0x020120123F F는 이것이 부호없는 정수임을 보여주는 약물입니다.다른 숫자는 각 숫자마다 바이트의 절반으로 저장됩니다.따라서 공통 날짜 문자열이 5 바이트 (즉, 02 01 20 12 3F) 필드에 맞는 것을 볼 수 있습니다.

SSIS 에서이를 사용하려면 위에 명시된 @billinkc와 같이 수행하고 필드를 변환하기 위해 스크립트 변환을 사용해야합니다.이 메커니즘은 번호의 숫자, 왼쪽에 0의 패드를 계산하여 COMP-3 5 및 COMP-3 4 용으로 최대 9 개의 최대 9 개를 얻은 다음 날짜의 숫자가있는 숫자가있는 hexidecimal 문자열을 구성하는 것입니다.또는 시간을 추가하고 끝에 f를 추가하십시오 (또는 대상이 서명 된 번호를 기대하는 경우 c).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top