MySQL에서 USD 통화 형식으로 데이터 표시하기
MySQL에서는 FORMAT() 함수와 CONCAT() 함수를 함께 사용하면 숫자로 저장된 금액을 'USD 1,000,000,000.00'처럼 읽기 쉬운 통화 형식으로 손쉽게 변환할 수 있습니다.
FORMAT(값, 소수점 자릿수) 함수는 지정한 자릿수만큼 반올림하고, 천 단위마다 쉼표(,)를 자동으로 삽입해 줍니다. 여기에 CONCAT()으로 접두사 'USD '를 붙이면 완성된 통화 문자열을 얻을 수 있습니다.
1단계: 테이블 생성
먼저 금액을 저장할 테이블을 생성합니다. 금액 컬럼은 정확한 계산을 위해 DECIMAL 타입으로 선언하는 것이 좋습니다.
mysql> create table DemoTable
-> (
-> Amount DECIMAL(15,4)
-> );
Query OK, 0 rows affected (0.75 sec)
2단계: 샘플 데이터 삽입
INSERT 문을 사용해 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable values(90948484);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(1000000000);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(1535353536);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(773646463);
Query OK, 1 row affected (0.20 sec)
3단계: 원본 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회하면 아래와 같이 소수점 네 자리까지 그대로 출력됩니다.
mysql> select *from DemoTable;
+-----------------+
| Amount |
+-----------------+
| 90948484.0000 |
| 1000000000.0000 |
| 1535353536.0000 |
| 773646463.0000 |
+-----------------+
4 rows in set (0.00 sec)
4단계: FORMAT() 함수로 통화 형식 적용
이제 FORMAT() 함수에 소수점 두 자리를 지정하고, CONCAT()으로 'USD ' 접두사를 붙여 통화 형식으로 표시해 보겠습니다.
mysql> select concat('USD ',format(Amount,2)) as Currency from DemoTable;실행 결과, 금액이 천 단위 쉼표와 소수점 두 자리를 갖춘 올바른 USD 통화 형식으로 출력됩니다.
+----------------------+
| Currency |
+----------------------+
| USD 90,948,484.00 |
| USD 1,000,000,000.00 |
| USD 1,535,353,536.00 |
| USD 773,646,463.00 |
+----------------------+
4 rows in set (0.23 sec)
참고 사항
FORMAT() 함수는 세 번째 인수로 로케일(locale)을 전달할 수도 있습니다. 예를 들어 FORMAT(Amount, 2, 'en_US')처럼 사용하면 해당 지역의 숫자 형식 규칙에 따라 구분 기호가 적용되므로, 다국어 서비스에서 유용하게 활용할 수 있습니다.