DATABASE
[MySQL] ROUND(), TRUNCATE(), CEILING(), FLOOR() 함수 알아보기
yoonddo
2023. 7. 6. 15:19
숫자 데이터를 다룰 때 반올림과 버림을 많이 사용한다. MySQL에서는 반올림과 버림 기능을 제공하기 위해
ROUND() ,TRUNCATE(), CEILING(), FLOOR() 함수를 제공한다.
ROUND (반올림)
MySQL 쿼리에서 ROUND() 함수를 사용하면 반올림을 할 수 있다. ROUND() 함수는 두 개의 인자를 받는데
"ROUND(숫자,반올림 할 자릿수)" 형태로 사용한다.
SELECT ROUND(1234.56789) FROM DUAL -- 1234 소수점 밑으로 모두 없애기
SELECT ROUND(1234.56789 ,1) FROM DUAL -- 1234.6 소수점을 기준으로 오른쪽 +1 왼쪽 -1
SELECT ROUND(1234.56789 ,4) FROM DUAL -- 1234.5679
SELECT ROUND(1234.56789 ,-1) FROM DUAL -- 1230
SELECT ROUND(1234.56789 ,-2) FROM DUAL -- 1200
TRUNCATE (버림)
숫자의 특정 자릿수 이하를 버리기 위해서는 TRUNCATE() 함수를 통해 사용할 수 있다. TRUCATE() 함수 역시
두 개의 인자를 받는데 "TRUNCATE(숫자, 버림 할 자릿수)" 형태로 사용한다. ROUND() 함수와 다르게 자릿수를
반드시 입력해야한다.
SELECT TRUNCATE(1234.56789 ,1) FROM DUAL; -- 1234.5
SELECT TRUNCATE(1234.56789 ,4) FROM DUAL; -- 1234.5678
SELECT TRUNCATE(1234.56789 ,-1) FROM DUAL; -- 1230
SELECT TRUNCATE(1234.56789 ,-2) FROM DUAL; -- 1200
CEILING (무조건 올림)
CEILING() 함수는 소수점 이하를 무조건 올리는 함수이다. ROUND() 함수와는 달리 CEILING() 함수는 무조건 정수값으로 출력된다. "CEILING(반올림 할 숫자)" 형태로 사용한다.
SELECT CEILING(24.35) -- 25
SELECT CEILING(27.9) -- 28
FLOOR (무조건 버림)
FLOOR() 함수는 소수점 이하를 무조건 버리는 함수이다. CEILING과 마찬가지로 정수값으로 출력된다.
"FLOOR(소수점 이하는 무조건 버릴 숫자)" 형태로 사용한다.
SELECT FLOOR(25.35) -- 25
SELECT FLOOR(22.9) -- 22
참고 블로그 : https://jjeongil.tistory.com/928 ,
https://velog.io/@donghoim/MySQL-SQL-ROUND-FLOOR-CEIL-%ED%95%A8%EC%88%98