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