2011-11-02 1 views
3

십진수 (4,4)로 선언 된 열이 있습니다. 현재 0.0400을 값으로 저장합니다. SQL 서버 2008에서 decimal 데이터 유형을 사용하여 산술 오버플로 오류가 발생했습니다.

Update <tablename> 
set <columnname>= 9.95 
where <condition> 

내가 실행하려고

, 나는 다음과 같은 오류를 얻을 : 산술 오버플로 오류가 데이터 형식의 숫자를 숫자로 변환 지금은 9.95.I는 다음과 같은 쿼리를 사용에 0.0400에서 저장된 값을 업데이트해야합니다. 명세서가 종료되었습니다.

친절히 도움. 당신이 decimal(4,4) 작성하는 경우

답변

1

, 어떤 데이터베이스가 듣는 것은 :

그래서 decimal(4,4)이를 저장할 수 있습니다 그들 모두 네는 소수 구분 기호 뒤에

  • 총 네 자리 숫자가 있습니다 범위 0.0000 ~ 0.9999 (및 그 음수 값). 그러나 9.95은이 범위를 벗어나므로 오류가 반환됩니다. decimal(4,4)로 열을 정의

  • 3

    내가 4

    9.95를 대표하는 소수점 올있는 총 4 자리 숫자를해야합니다

    말을하는 것과 동일합니다, 당신은 필요한 것 '小数点 4 자리'조건을 만족하려면 9.9500으로 저장하십시오. 그러나 이것은 이제 '최대 4 자리'조건을 초과하므로 변환 할 수 없습니다.

    이런 식으로 십진수로 9.95를 저장하려면 적어도 decimal(5, 4)이 필요합니다.

    1

    몇 년 전에 비슷한 문제가 있었는데 여기에 대한 이해가 있습니다.

    소수 (TotalDigitsIncludingDecimal, DecimalPlaces)

    예 : 값 = 50.05 십진수 선언 (4,2) 예 : 값 = 5000.0005 십진수 선언 (8,4)

    관련 문제