오늘은 데이터베이스에서 자주 쓰이는 형변환에 대해서 정리해봤다.
형변환은 말 그대로 "자료형을 바꿔주는 것"인데, 생각보다 DB에서 되게 중요한 역할을 한다.
형변환이 필요한 이유
내가 이해한 이유들을 정리해보면:
- 데이터 일관성 유지
여러 소스에서 들어온 데이터가 문자열·숫자·날짜 등 제각각일 때, 한 형식으로 맞춰줘야 통합이 잘 된다. - 연산 수행 가능
문자 '123'을 숫자로 바꾸면 수학 계산이 가능해진다. - 데이터 표현 바꾸기
날짜를 "2025-09-23" 이런 식으로 깔끔하게 출력하거나, 숫자를 1,234.56 처럼 바꿔서 보여줄 수 있다. - 조건 검색 편리
WHERE 절 같은 데서 데이터 타입이 안 맞으면 검색이 안 되니까, 맞춰주는 게 필요하다. - 데이터 검증
입력된 값이 날짜인지, 숫자인지 확인하는 용도로도 쓸 수 있다.
형식 지정자
날짜나 숫자 형식을 바꿀 때 자주 쓰는 포맷 기호들:
- YYYY : 4자리 연도 (2025)
- YY : 2자리 연도 (25)
- MM : 월 (01–12)
- MON : 월 약자 (JAN, FEB…)
- MONTH : 월 전체 이름
- DD : 일 (01–31)
- HH24 : 24시간
- HH12 : 12시간
- MI : 분
- SS : 초
이런 걸 조합하면 'YYYY-MM-DD HH24:MI:SS' 같은 포맷을 만들 수 있다.
주요 형변환 함수들
1. TO_CHAR
숫자나 날짜 → 문자열로 변환. 출력 포맷을 직접 지정할 수 있어서 보고서 만들 때 진짜 많이 씀.
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
SELECT TO_CHAR(1234.56, '9,999.99') FROM DUAL;
SELECT TO_CHAR(salary, '$999,999.99') FROM employees;
2. TO_NUMBER
문자열 → 숫자로 변환. 문자열에 들어 있는 숫자도 실제 계산이 가능해진다.
SELECT TO_NUMBER('1,234.56', '9,999.99') FROM DUAL;
SELECT TO_NUMBER('$1,234.56', '$9,999.99') FROM DUAL;
3. TO_DATE
문자열 → 날짜로 변환.
특히 'DD-MON-YYYY HH24:MI:SS' 같은 포맷으로 세밀하게 날짜/시간을 맞출 수 있다.
SELECT TO_DATE('2024-11-01', 'YYYY-MM-DD') FROM DUAL;
SELECT TO_DATE('01-NOV-2024 15:30:00', 'DD-MON-YYYY HH24:MI:SS') FROM DUAL;
참고: 세션 언어 바꾸면 월 약자가 인식되는 방식도 달라진다.
4. CAST
SQL 표준 함수. 타입 변환을 명확하게 쓸 수 있고, DBMS마다 호환성도 좋다.
SELECT CAST('123' AS NUMBER) AS 숫자,
CAST(SYSDATE AS VARCHAR2(20)) AS 문자,
CAST('2024-11-01' AS DATE) AS 날짜
FROM DUAL;'DBMS > 개념' 카테고리의 다른 글
| 10_ 설계의 3단계 (0) | 2025.09.27 |
|---|---|
| 09_ 날짜와 시간 함수 (0) | 2025.09.25 |
| 07_ DML의 심화 (0) | 2025.09.21 |
| 06_ DB의 연산자 (0) | 2025.09.19 |
| 05_ DML(데이터 조작어) (0) | 2025.09.18 |