MySQL에서 숫자를 소수점 이하 두 자리 형식으로 표시하려면 TRUNCATE() 함수를 사용하면 됩니다. 이 함수는 지정한 자릿수 뒤의 값을 버리고 잘라낸 결과를 반환합니다.
TRUNCATE() 기본 문법
SELECT TRUNCATE(yourColumnName, 2) AS anyVariableName FROM yourTableName;
문법을 제대로 이해하기 위해 먼저 실습용 테이블을 생성해 보겠습니다.
예제 테이블 생성
mysql> CREATE TABLE FormatNumberTwoDecimalPlace (
-> Number FLOAT
-> );
Query OK, 0 rows affected (0.59 sec)INSERT 명령으로 샘플 데이터를 몇 개 입력합니다.
mysql> INSERT INTO FormatNumberTwoDecimalPlace VALUES (123.456); Query OK, 1 row affected (0.13 sec) mysql> INSERT INTO FormatNumberTwoDecimalPlace VALUES (1.6789); Query OK, 1 row affected (0.19 sec) mysql> INSERT INTO FormatNumberTwoDecimalPlace VALUES (12.2); Query OK, 1 row affected (0.14 sec) mysql> INSERT INTO FormatNumberTwoDecimalPlace VALUES (12356.23145); Query OK, 1 row affected (0.40 sec) mysql> INSERT INTO FormatNumberTwoDecimalPlace VALUES (12356); Query OK, 1 row affected (0.14 sec) mysql> INSERT INTO FormatNumberTwoDecimalPlace VALUES (.5678); Query OK, 1 row affected (0.28 sec)
이제 SELECT 명령으로 테이블에 저장된 모든 레코드를 조회해 보겠습니다.
mysql> SELECT * FROM FormatNumberTwoDecimalPlace;
출력 결과
+---------+ | Number | +---------+ | 123.456 | | 1.6789 | | 12.2 | | 12356.2 | | 12356 | | 0.5678 | +---------+ 6 rows in set (0.04 sec)
이제 TRUNCATE() 함수를 적용하여 숫자를 소수점 둘째 자리까지만 표시하는 쿼리는 다음과 같습니다.
mysql> SELECT TRUNCATE(Number, 2) AS TwoValueAfterDecimal FROM FormatNumberTwoDecimalPlace;
출력 결과
+----------------------+ | TwoValueAfterDecimal | +----------------------+ | 123.45 | | 1.67 | | 12.19 | | 12356.23 | | 12356.00 | | 0.56 | +----------------------+ 6 rows in set (0.00 sec)
참고 사항
TRUNCATE()는 반올림 없이 지정한 자릿수 이하를 단순히 버립니다. 반올림된 값이 필요하다면 대신 ROUND() 함수를 사용하세요. 또한 위 예제에서 12.2가 12.19로 표시되는 것은 FLOAT 타입의 부동소수점 오차 때문입니다. 금액처럼 정확한 소수점 계산이 중요한 데이터라면 컬럼 타입을 DECIMAL로 선언하는 것이 좋습니다.