이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

8.2. 금전적 유형

theMoney유형은 고정 된 분수 정밀도로 통화 금액을 저장합니다. 보다표 8-3. 분수 정밀도는 데이터베이스의에 의해 결정됩니다.lc_monetary설정. 테이블에 표시된 범위는 두 개의 분수 숫자가 있다고 가정합니다.'$ 1,000.00'. 출력은 일반적으로 후자의 형태이지만 로케일에 따라 다릅니다.

표 8-3. 금전적 유형

이름 스토리지 크기 설명 범위
Money 8 바이트 통화 금액 -92233720368547758.08 ~ +9223372036854758.07

이 데이터 유형의 출력은 로케일에 민감하기 때문에로드하는 것이 작동하지 않을 수 있습니다Money다른 설정이 다른 데이터베이스로의 데이터lc_monetary. 문제를 피하려면 새 데이터베이스로 덤프를 복원하기 전에 확인하십시오lc_monetary덤프 된 데이터베이스와 동일하거나 동등한 값이 있습니다.

숫자, intbigint데이터 유형을 캐스트 할 수 있습니다Money. 에서 전환Realand이중 정밀데이터 유형은 캐스트를 통해 수행 할 수 있습니다숫자첫 번째, 예 :

선택 '12 .34 ':: float8 :: numeric :: money;

그러나 권장되지 않습니다. 부동 소수점 번호는 반올림 오류 가능성으로 인해 돈을 처리하는 데 사용해서는 안됩니다.

A Money값을 캐스트 할 수 있습니다숫자정밀도 손실없이. 다른 유형으로의 전환은 잠재적으로 정밀도를 잃을 수 있으며 두 단계로도 수행해야합니다.

선택 '52093.89':: money :: numeric :: float8;

aMoney정수 값에 의한 값은 분수 부분을 0으로 절단하여 수행됩니다. 둥근 결과를 얻으려면 부동 소수점 값으로 나누거나를 캐스팅하십시오.Moneyvalue to숫자나누기 전 전Money나중에. (후자는 정밀 손실 위험을 피하는 것이 바람직합니다.) A시기Money값은 다른 사람으로 나눈Money값, 결과는입니다.이중 정밀(즉, 돈이 아닌 순수한 숫자); 통화 장치는 부서에서 서로를 취소합니다.