SQL 숫자 처리 함수 완벽 정리
FORMAT / ROUND / TRUNCATE 비교와 사용법
1. FORMAT – 숫자를 쉼표 포함한 문자열로 포맷
목적
- 숫자를 #,###.## 형식의 문자열로 변환하여 출력
- 천 단위 쉼표(,) 자동 삽입, 지정한 소수 자릿수에서 반올림
예시
SELECT FORMAT(1234567.891, 2); -- 결과: '1,234,567.89'
SELECT FORMAT(1234567, 4); -- 결과: '1,234,567.0000'
특징
- 반환 타입은 문자열 (VARCHAR)
- 숫자 연산에는 부적합 (캐스팅 필요)
- 반올림 처리가 자동 적용됨
- 가독성을 위한 출력 전용 함수
2. ROUND – 소수점 반올림
목적
- 소수점 이하를 지정된 자리수에서 반올림
문법
ROUND(number, decimal_places
SELECT ROUND(123.4567, 2); -- 결과: 123.46
SELECT ROUND(123.4567, 0); -- 결과: 123
특징
- 결과는 숫자 타입
- 내부 로직은 +1 자릿수에서 반올림
- 일반적인 계산 및 조건절 처리에 매우 적합
3. TRUNCATE – 소수점 버림
목적
- 소수점 이하를 지정한 자리에서 버림(절삭)
문법
TRUNCATE(number, decimal_places)
SELECT TRUNCATE(123.4567, 2); -- 결과: 123.45
SELECT TRUNCATE(123.4567, 0); -- 결과: 123
특징
- 결과는 숫자 타입
- 반올림 없이, 그냥 버림
- 금융/정산 등에서 정확한 절삭이 필요할 때 유용
비교 요약
함수 | 동작 방식 | 반환 타입 | 특징 |
FORMAT | 쉼표 포함 + 반올림 | 문자열 | 사용자 친화적 출력, 조회용 |
ROUND | 반올림 | 숫자 | 일반적인 수학적 반올림 |
TRUNCATE | 버림 | 숫자 | 소수점 절삭, 정산 계산에 적합 |
'DB > MySQL' 카테고리의 다른 글
[MySQL] 날짜 및 시간 계산 함수 정리 (0) | 2025.05.19 |
---|---|
[MySQL][MAC] brew services start mysql와 mysql.server start 차이 (0) | 2024.03.03 |
[MySQL][MAC] MAC에서 MySQL 설치 방법 (0) | 2024.03.03 |
[DB] 데이터베이스 관련 개념 - 01 (0) | 2022.09.05 |