1. 형 변환의 원칙
- 암시적 형 변환은 원하지 않는 결과가 발생할 수 있으니 명시적으로 형 변환을 사용
- 단순하게 데이터 타입의 변환은 CAST 연산자 사용
- 데이터 타입의 변환 + 포맷이 필요한 경우는 TO_XXXX 함수를 사용
- WHERE 절의 컬럼은 형 변환을 최소화
2. CAST 연산자
CAST 연산자는 단순한 데이터 타입 변환에 사용하기 편함
SELECT CAST ( 사원번호 AS VARCHAR(3)) -- 숫자형에서 문자로
,CAST ( 부서코드 AS NUMBER(3)) -- 문자에서 숫자로
,CAST ( NULL AS VARCHAR(3)) -- NULL 에서 문자로
FROM 사원정보
3. TO_XXXX 함수
특정 형식의 값이 필요한 경우 TO_CHAR, TO_DATE, TO_NUMBER의 형변환 함수 사용
문자 타입 | 함수명 | 문자타입 | 함수명 | 문자타입 |
--> TO_CHAR --> | <-- TO_CHAR <-- | |||
NUMBER | CHARACTER | DATE | ||
<-- TO_NUMBER <-- | --> TO_DATE --> |
TO_CHAR 포맷 예제
SELECT TO_CHAR(123456789) AS 숫자_문자-- 문자로 취급
FROM DUAL
UNION ALL
SELECT TO_CHAR(123456789,'99999999999') -- 빈자리 공백 처리 포맷
FROM DUAL
UNION ALL
SELECT TO_CHAR(123456789,'00000000000') -- 빈자리 0으로 처리 포맷
FROM DUAL
UNION ALL
SELECT TO_CHAR(123456789,'999,999,999,999') -- , 단위 구분
FROM DUAL
UNION ALL
SELECT TO_CHAR(1.23456789,'0.9999999999999') -- 소숫점
FROM DUAL
UNION ALL
SELECT TO_CHAR(123456789,'$999,999,999,999') -- $ 통화 표시
FROM DUAL
UNION ALL
SELECT TO_CHAR(123456789,'L999,999,999,999') -- 지역 통화 한국의 경우 원표시
FROM DUAL
UNION ALL
SELECT TO_CHAR(1234,'XXX') -- 16 진수로 변환
FROM DUAL
UNION ALL
SELECT TO_CHAR(-12,'999,999pr') -- 음수를 꺽세로 표시
FROM DUAL;
쿼리 실행 결과
DATE FORMAT
FORMAT | 설명 | FORMAT | 설명 |
YYYY | 년도 표시 ( 4자리 ) | YY | 년도 표시 ( 2자리 ) |
D | 요일 표시 ( 1 -7 ) | DAY | 요일 표시 ( 월....일 ) |
DD | 달의 날짜 표시 ( 1-31 ) | DDD | 년의 날짜 표시 ( 1 - 365 ) |
MM | 월을 표시 ( 1 - 12 ) | MONTH | 월의 이름 출력 ( 1월..12월 ) |
WW | 년의 주 표시 ( 1 - 53 ) | IW | 년의 주 표시 ( 1 - 53 ) 국제표준 |
HH | 시간 표시 ( 1 -12 ) | MI | 분 표시 |
SS | 초표시 |
'Structured Query Language > Oracle SQL' 카테고리의 다른 글
SQL, 알다가도 모르겠는 Window 함수와 예시들 (1) | 2023.12.28 |
---|---|
SQL OVER 절 (0) | 2023.12.19 |
Oracle SQL_EXTRACT (0) | 2023.09.25 |
Oracle_SQL CONNECT BY LEVEL (0) | 2023.09.25 |
Oracle SQL_DUAL (0) | 2023.09.25 |