2014-01-14 4 views
2

나는 '09 .230 '형식으로 가중치가 삽입되어야하는 테이블에 가중치 열을 가지고 있습니다. 가중치 열은 varchar 유형입니다. 프런트 엔드의 값은 '9.23'이되어 위에서 언급 한 형식 즉 (09.230)으로 변환해야합니다. 후행 0을 추가 할 수 있지만 앞에 오는 0을 추가하는 것은 문제입니다. 이는 '6.560'하지만 출력은 ''06 년 0.560로 원하는 내가 될 밖으로 위의 제로tsql의 10 진수 값 앞에 0을 더하는 방법

CAST(ROUND(@Weight,3,0) AS DECIMAL (9,3)) 

한다고 가정 @Weight = 6.56 출력을 뒤에 추가로 제공했을 것입니다.

답변

3
RIGHT('0'+ CONVERT(VARCHAR, CAST(ROUND(@Weight,3,0) AS DECIMAL (9,3))), 6) 

이것은

  • 는 앞에서 0 추가 (소스 데이터 유형 진수 이후, 트레일 링 제로를 유지)
  • 포함 된 VARCHAR로 변환하여 표현을 얻어 그것, 그리고
  • 필요한 경우 정면에서 문자를 제거하여 그것을 6 문자로 자릅니다 (예 : 012.560 ->12.560, 그러나 06.560 ->06.560).

소수점 전에 최대 두 자리 숫자에만 이렇게한다는 생각 노트, 수행 100.12300.123에 잘립니다을!

+0

Perfect! 감사합니다 @Heinzi – suds