MySQL에서 DECIMAL 타입의 소수 값을 정수 형태로 변환하고 싶다면 TRUNCATE() 함수를 사용하면 됩니다. 예를 들어 190.245를 190으로 변환할 수 있습니다. TRUNCATE 함수는 반올림하지 않고 지정한 자릿수 뒤의 숫자를 단순히 잘라낸다는 점이 특징입니다.
TRUNCATE() 기본 문법
SELECT TRUNCATE(컬럼명, 0) FROM 테이블명;
두 번째 인자에 0을 넣으면 소수점 이하가 모두 제거되어 정수 값만 반환됩니다.
예제 테이블 생성하기
먼저 실습용 테이블을 만들어 보겠습니다.
mysql> create table DemoTable
-> (
-> Value DECIMAL(10,4)
-> );
Query OK, 0 rows affected (0.67 sec)데이터 삽입하기
INSERT 명령으로 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable values(45.567); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(100.0000); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(15.89000); Query OK, 1 row affected (0.25 sec)
저장된 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
출력 결과
+----------+ | Value | +----------+ | 45.5670 | | 100.0000 | | 15.8900 | +----------+ 3 rows in set (0.00 sec)
TRUNCATE()로 소수점 자르기
이제 TRUNCATE 함수를 사용해 소수점 이하를 잘라내고 정수 값만 조회하는 쿼리를 실행해 보겠습니다.
mysql> select truncate(Value,0) from DemoTable;
출력 결과
+-------------------+ | truncate(Value,0) | +-------------------+ | 45 | | 100 | | 15 | +-------------------+ 3 rows in set (0.00 sec)
참고 사항
TRUNCATE()는 단순히 숫자를 잘라내기 때문에 45.567이 46이 아닌 45로 반환됩니다. 만약 반올림된 결과가 필요하다면 ROUND() 함수를, 무조건 올림이나 내림이 필요하다면 각각 CEILING(), FLOOR() 함수를 사용하면 됩니다. 상황에 맞는 함수를 선택해 활용하시기 바랍니다.