DBMS/개념

08_ DBMS 형변환

seungwon-1 2025. 9. 23. 16:00

오늘은 데이터베이스에서 자주 쓰이는 형변환에 대해서 정리해봤다.
형변환은 말 그대로 "자료형을 바꿔주는 것"인데, 생각보다 DB에서 되게 중요한 역할을 한다.

 


형변환이 필요한 이유

내가 이해한 이유들을 정리해보면:

  1. 데이터 일관성 유지
    여러 소스에서 들어온 데이터가 문자열·숫자·날짜 등 제각각일 때, 한 형식으로 맞춰줘야 통합이 잘 된다.
  2. 연산 수행 가능
    문자 '123'을 숫자로 바꾸면 수학 계산이 가능해진다.
  3. 데이터 표현 바꾸기
    날짜를 "2025-09-23" 이런 식으로 깔끔하게 출력하거나, 숫자를 1,234.56 처럼 바꿔서 보여줄 수 있다.
  4. 조건 검색 편리
    WHERE 절 같은 데서 데이터 타입이 안 맞으면 검색이 안 되니까, 맞춰주는 게 필요하다.
  5. 데이터 검증
    입력된 값이 날짜인지, 숫자인지 확인하는 용도로도 쓸 수 있다.

 

형식 지정자

날짜나 숫자 형식을 바꿀 때 자주 쓰는 포맷 기호들:

  • 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