복붙노트

[SQL] 어떻게 SQL Server의 소수점 값을 저장하는 방법?

SQL

어떻게 SQL Server의 소수점 값을 저장하는 방법?

나는 SQL 서버의 열 소수점 데이터 유형을 알아 내려고 노력하고있어. 나는, 15.5과 같은 26.9, 24.7, 9.8, 등을 값을 저장 할 수 있어야합니다

나는 할당 된 열 데이터 유형 진수 (18, 0) 그러나 이것은 나에게이 값을 저장 할 수 없습니다.

이 작업을 수행하는 올바른 방법은 무엇입니까?

해결법

  1. ==============================

    1.DECIMAL (18,0)는 소수점 뒤에 0 자리 수 있습니다.

    DECIMAL (18,0)는 소수점 뒤에 0 자리 수 있습니다.

    DECIMAL과 같은 사용 무언가 (18,4) 대신 그 잘해야합니까!

    즉, 18 자리, 그 중 (소수점 전과 14) 소수점 이후 4의 총을 제공합니다.

  2. ==============================

    2.다음과 같이 사용해야합니다 당신은 다음과 같습니다

    다음과 같이 사용해야합니다 당신은 다음과 같습니다

    DECIMAL(m,a)
    

    m은 소수점이 가질 수있는 총 자릿수입니다.

    A는 당신이 소수점 후 수 있습니다 숫자의 최대 수입니다.

    http://www.tsqltutorials.com/datatypes.php 모든 데이터 유형에 대한 설명이 있습니다.

  3. ==============================

    3.소수에 대한 설정은 많은 숫자가 숫자가 가질 수있는 얼마나 많은 숫자 것은 당신이 소수점의 오른쪽에 갖고 싶어 어떻게 정밀도와 스케일이나 일반 언어입니다.

    소수에 대한 설정은 많은 숫자가 숫자가 가질 수있는 얼마나 많은 숫자 것은 당신이 소수점의 오른쪽에 갖고 싶어 어떻게 정밀도와 스케일이나 일반 언어입니다.

    당신은 소수에 PI를 넣어 그래서 경우 (18,0)이 3으로 기록 될 것입니다?

    당신은 소수에 PI를 넣으면 (18,2) 그것은 3.14로 기록 될 것인가?

    당신은 소수에 PI를 넣으면 (18,10)는 3.1415926535로 기록 될 수있다.

  4. ==============================

    4.대부분의 경우, I는 SQL 소수 유형의 적어도 스토리지 (5 바이트)를 얻어 소수 (9,2)를 사용한다.

    대부분의 경우, I는 SQL 소수 유형의 적어도 스토리지 (5 바이트)를 얻어 소수 (9,2)를 사용한다.

    정밀 => 저장 바이트

    이것은 0에서 최대 값 중 가장 큼 충분히 999.99 9 999 (소수점 뒤에 7 자리 숫자의 infront + 2 = 총 9 자리)에 저장할 수있다.

  5. ==============================

    5.이 시도 할 수 있습니다

    이 시도 할 수 있습니다

    decimal(18,1)
    

    숫자의 길이는 완전히 18 소수점 이후 숫자의 길이 만이 아니라 더보다 1이어야해야한다.

  6. ==============================

    6.MySQL은 DB 진수 (4,2)는 4 자리수의 합계를 입력 할 수 있습니다. 당신이 소수 (4,2)에서 보는 것처럼, 당신이있는 두 자리는 소수점 이후 유지하기위한 의미에서 4 자리 숫자의 합계를 입력 할 수 있음을 의미합니다.

    MySQL은 DB 진수 (4,2)는 4 자리수의 합계를 입력 할 수 있습니다. 당신이 소수 (4,2)에서 보는 것처럼, 당신이있는 두 자리는 소수점 이후 유지하기위한 의미에서 4 자리 숫자의 합계를 입력 할 수 있음을 의미합니다.

    당신은 MySQL 데이터베이스에 100.0를 입력한다면, 그것은 "열의 범위 값의 부족"과 같은 오류가 표시됩니다.

    그래서, 당신은이 범위에서 입력 할 수 있습니다 : 00.00에서 99.99로.

  7. ==============================

    7.다른 대답은 맞다. 당신의 예는 당신이 원하는 것을 가능성의 전체 범위는 DECIMAL (3, 1)입니다 반영 가정. 또는, DECIMAL (14, 1) 14 자리의 총 수 있습니다. 그것은 충분 대해 생각하는 당신의 일이다.

    다른 대답은 맞다. 당신의 예는 당신이 원하는 것을 가능성의 전체 범위는 DECIMAL (3, 1)입니다 반영 가정. 또는, DECIMAL (14, 1) 14 자리의 총 수 있습니다. 그것은 충분 대해 생각하는 당신의 일이다.

  8. ==============================

    8.

    request.input("name", sql.Decimal, 155.33)              // decimal(18, 0)
    request.input("name", sql.Decimal(10), 155.33)          // decimal(10, 0)
    request.input("name", sql.Decimal(10, 2), 155.33)       // decimal(10, 2)
    
  9. from https://stackoverflow.com/questions/813287/how-to-store-decimal-values-in-sql-server by cc-by-sa and MIT license