2010-04-03 2 views
2

소수점 한 자리에 내 값을 반올림하는 데 성공했지만 후행 0이 여러 개 제거되었습니다. 예를 들어,이 :SQL 반올림 값

ROUND(SUM(Duration),1) 

... 저를주는 끝 :

16.9000000000000000 

을 내가 모든 후행 0을 트림 어떻게.

MSSQL

답변

3

round 기능 수를 반올림하지만 변경되지 않은 데이터 유형 잎 : numeric(x,1)에 번호를 캐스팅함으로써

ROUND(3.14,1) --> 3.10 

을, 둘은 반올림 변경이 한 자리 정밀도 데이터 형식입니다 :

select cast(sum(duration) as numeric(6,1)) 
:
CAST(3.14 as numeric(6,1)) --> 3.1 
당신의 쿼리

, 이러한 캐스트처럼 볼 수 있었다

그러나 최종 표시 형식은 클라이언트에 따라 다릅니다. SQL Server Management Studio에서는 점 뒤에 한 자리 숫자로 numeric(x,1)이 표시되지만 다른 방식으로 자유롭게 표시 할 수 있습니다. 숫자를 형식화하는 것은 SQL 외부의 클라이언트 측에 가장 적합합니다.

2

사용 :

CONVERT(Decimal(9, 1), ROUND(SUM(duration), 1)) 

진수 데이터 유형의 두 번째 매개 변수는 정밀도 - 1는 소수점 당신에게 한 자리를 줄 것이다.