2025년 9월 25일:토토 커뮤니티 : 토토
이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
You may want to view the same page for the와이즈 토토 : 문서 : 17 : 8.2. 금전적 유형버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

8.2. 화폐 유형

유형은 통화 금액을 저장합니다. 고정된 분수 정밀도로; 참조표 8-3. 는 fractional precision is determined by the database'slc_monetary설정. 표에 표시된 범위는 두 가지가 있다고 가정합니다. 분수. 다양한 형식으로 입력이 허용됩니다. 정수 및 부동 소수점 리터럴뿐만 아니라 일반적인 통화 형식(예:'$1,000.00'. 출력은 일반적으로 후자 형식이지만 다음에 따라 다릅니다. 로케일.

표 8-3. 화폐 유형

이름 저장소 크기 설명 범위
8바이트 통화 금액 -92233720368547758.08 ~ +92233720368547758.07

이 데이터 유형의 출력은 로케일을 구분하므로, 로드가 작동하지 않음데이터를 데이터베이스로 설정이 다릅니다.lc_monetary. 문제를 방지하려면 복원하기 전에 새 데이터베이스에 덤프하세요.lc_monetary다음과 같거나 동등한 값을 가집니다. 덤프된 데이터베이스.

숫자, intbigint데이터 유형은 다음과 같습니다. 으로 전송됨. 에서 변환진짜그리고배정밀도데이터 유형은 다음으로 캐스팅하여 수행할 수 있습니다.숫자먼저, 예를 들어:

SELECT '12.34'::float8::numeric::money;

그러나 이것은 권장되지 않습니다. 부동 소수점 숫자는 다음과 같습니다. 반올림 가능성이 있으므로 돈을 처리하는 데 사용하지 마십시오. 오류.

A 값을 다음으로 캐스팅할 수 있습니다.숫자정밀도 손실 없이. 기타로의 전환 types could potentially lose precision, and must also be done in 두 단계:

SELECT '52093.89'::money::numeric::float8;

a의 분할정수로 표현된 값 값은 소수 부분을 잘라내어 수행됩니다. 제로. 반올림된 결과를 얻으려면 부동 소수점 값으로 나누거나 캐스팅값을숫자나누기 전과 다시나중에. (후자는 피하는 것이 바람직하다. 정밀도 손실 위험이 있습니다.) a값 다른 것으로 나누어진다값, 결과 이다배정밀도(즉, 순수 숫자가 아닌 숫자) 돈); 통화 단위는 서로 상쇄됩니다. 구분.