Post

05. SQL(숫자, 문자, 날짜 함수)

05. SQL(숫자, 문자, 날짜 함수)

[toc]

SQL 내장 함수의 활용

이번 학습에서는 SQL에서 자주 사용되는 내장 함수(Built-in Functions)를 실습하였다.
숫자, 문자, 날짜 데이터를 보다 쉽게 가공하거나 분석하는 데 유용한 함수들을 정리하였다.


1. 숫자 함수

함수설명
ROUND(data, n)소수점 n자리에서 반올림
TRUNCATE(data, n)소수점 n자리에서 버림
MOD(a, b)a를 b로 나눈 나머지
CEIL(x)x보다 크거나 같은 최소 정수
FLOOR(x)x보다 작거나 같은 최대 정수
POWER(x, y)x의 y 제곱
1
2
3
4
5
6
SELECT ROUND(986.456, 1);      
SELECT TRUNCATE(984.456, 1);  
SELECT MOD(10, 3);             
SELECT CEIL(4.1);              
SELECT FLOOR(7.14);            
SELECT POWER(2, 3);            

결과

SQL 함수설명결과
ROUND(986.456, 1)소수 첫째 자리 반올림986.5
TRUNCATE(984.456, 1)소수 첫째 자리에서 절삭984.4
MOD(10, 3)10을 3으로 나눈 나머지1
CEIL(4.1)올림5
FLOOR(7.14)내림7
POWER(2, 3)거듭제곱 (2의 3제곱)8

2. 문자 함수

함수설명
LOWER(str) / UPPER(str)대소문자 변환
LENGTH(str)문자열 길이
SUBSTR(str, start, length)부분 문자열 추출 (1부터 시작)
INSTR(str, target)target이 시작되는 위치
LPAD(str, n, pad) / RPAD(str, n, pad)패딩 문자로 자릿수 맞춤
TRIM(str) / LTRIM, RTRIM공백 제거
REPLACE(str, find, replace)문자열 치환 또는 제거
1
2
3
4
5
6
7
8
SELECT LOWER('HELLO');                     
SELECT UPPER('hello');                     
SELECT LENGTH('SQL');                      
SELECT SUBSTR('i like cake', 1, 3);         
SELECT INSTR('i like cake', 'i');          
SELECT LPAD('abc', 8, '*');                 
SELECT TRIM(' abc ');                      
SELECT REPLACE('apple', 'ppl', '');        

결과

SQL 함수설명결과
LOWER(‘HELLO’)문자열을 모두 소문자로hello
UPPER(‘hello’)문자열을 모두 대문자로HELLO
LENGTH(‘SQL’)문자열 길이 반환 (문자 수)3
SUBSTR(‘i like cake’, 1, 3)1번 문자부터 3개 추출i l
INSTR(‘i like cake’, ‘i’)첫 번째 ‘i’의 위치 반환1
LPAD(‘abc’, 8, ‘*’)왼쪽에 *을 붙여 총 8자 만들기*****abc
TRIM(‘ abc ‘)좌우 공백 제거abc
REPLACE(‘apple’, ‘ppl’, ‘’)‘ppl’을 빈 문자열로 대체ae

3. 날짜 함수

함수설명
NOW()현재 날짜/시간
DAYOFWEEK(date)요일 반환 (1=일요일)
WEEK(date)연 중 몇 번째 주인지 반환
YEAR(), HOUR(), MINUTE()해당 요소 추출
DATE_FORMAT(date, format)원하는 포맷으로 날짜 변형
DATE_ADD(date, INTERVAL n day)날짜 연산
DATEDIFF(date1, date2)두 날짜 간 차이(일 단위)
1
2
3
4
5
SELECT NOW();                                      
SELECT DAYOFWEEK('2024-08-30');                     
SELECT DATE_FORMAT(NOW(), '%m-%d');                
SELECT DATE_ADD(NOW(), INTERVAL 1 day);              
SELECT DATEDIFF(NOW(), DATE_ADD(NOW(), INTERVAL -1 day)); 

결과

SQL 함수설명예시 결과 (기준: 2025-05-23 기준)
NOW()현재 날짜와 시간 반환2025-05-23 23:41:00 (시스템 시간 기준)
DAYOFWEEK(‘2024-08-30’)요일 번호 반환 (일:1 ~ 토:7)6 (2024-08-30은 금요일 → 6)
DATE_FORMAT(NOW(), ‘%m-%d’)현재 날짜를 월-일 형식으로 출력05-23
DATE_ADD(NOW(), INTERVAL 1 DAY)현재 날짜에 하루 더함2025-05-24 23:41:00
DATEDIFF(NOW(), DATE_ADD(NOW(), INTERVAL -1 DAY))현재 날짜 - 하루 전 날짜 → 날짜 차이 (정수)1

Summary

  • SQL 내장 함수는 데이터를 실시간으로 가공할 수 있도록 도와준다.
  • 숫자, 문자, 날짜에 각각 최적화된 함수들이 존재하며, 사용법은 단순하지만 매우 강력하다.
  • 실무에서는 복잡한 쿼리 대신 간결한 함수 조합으로 원하는 결과를 빠르게 얻을 수 있다.

End