<변환형 함수>
-
날짜를 문자로, 숫자를 문자로 바꾸는 TO_CHAR
-
TO_CHAR(날짜, 출력형식)
-
TO_CHAR(숫자, 출력형식)
-
<출력형식>
-
, (콤마): 3자리마다 , 를 찍음
-
. (온점): 소수점 형식으로 변환
-
0: 왼쪽에 0을 삽입
-
$: $통화로 표시
-
L: Local 통화료 표시
-
XXXX: 16진수로 표시
1
2
|
SELECT TO_CHAR(12345678, '999,999,999') 콤마
FROM DUAL;
|
cs |
1
2
|
SELECT TO_CHAR(12345678, '999,999,999.99') 소수점
FROM DUAL;
|
cs |
1
2
|
SELECT TO_CHAR(12345678, '$999,999,999.99') 달러표시
FROM DUAL;
|
cs |
1
2
|
SELECT TO_CHAR(12345678, 'L999,999,999.99') L표시
FROM DUAL;
|
cs |
1
2
3
|
SELECT TO_CHAR(123, '09999') 제로표시
--남는 공간을 0으로 채우기
FROM DUAL;
|
cs |
-
YYYY: 4자리 연도
-
YY: 2자리 연도
-
DAY: 요일 (월, 화..)
1
2
3
4
|
--날짜를 문자로 변환
--년, 월, 일, 시, 분, 초
SELECT TO_CHAR(sysdate, 'YY-MM-DD HH24:MI:SS') 현재날짜시간
FROM DUAL;
|
cs |
1
2
|
SELECT TO_CHAR(sysdate, 'YYYY/MM/DD HH24:MI:SS') 현재날짜시간
FROM DUAL;
|
cs |
1
2
3
|
--365일 중 오늘이 며칠?
SELECT TO_CHAR(sysdate, 'DDD') 날짜
FROM dual;
|
cs |
1
2
3
|
--오늘의 월?
SELECT TO_CHAR(sysdate, 'MONTH') 몇월
FROM dual;
|
cs |
<TO_CHAR 예제>
-
employees 테이블에서 department_id가 100인 사원들의 입사일을 이용하여 employee_id, 입사월을 출력. (입사월은 월/년도 형식)
1
2
3
|
SELECT employee_id, TO_CHAR(hire_date, 'MM/YY')
FROM employees
WHERE department_id = 100;
|
cs |
-
employees 테이블에서 salary가 10000달러가 넘는 사원들의 이름과 월급을 월급이 많은 순으로 출력 (월급의 표시형식은 $)
1
2
3
4
|
SELECT last_name "이름", TO_CHAR(salary, '$99,999.99') "월급"
FROM employees
WHERE salary > 10000
ORDER BY salary DESC;
|
cs |
-
문자를 날짜로 바꾸는 TO_DATE
-
CHAR, VARCHAR2형을 DATE 타입으로 변환
-
TO_DATE(char, 출력형식)
-
CHAR: n바이트 크기를 가진 문자형 타입. n보다 작으면 나머지 공간을 공백으로 채워서 n바이트를 채움
-
VACHAR: n바이트의 크기를 가진 문자형 타입이지만 저장되는 타입의 크기가 n보다 작으면 n만큼의 길이만큼만 기억장소를 차지하는 가변형 타입. (4000byte까지 저장)
1
2
|
SELECT TO_DATE('2011-01-01', 'YYYY-MM-DD')
FROM dual;
|
cs |
-
문자를 숫자로 바꾸는 TO_NUMBER
-
CHAR, VARCHAR2형을 숫자형식으로 변환
-
TO_NUMBER(char)
1
2
|
SELECT TO_NUMBER('0123123')+100
FROM dual;
|
cs |
'Learning > SQL' 카테고리의 다른 글
DECODE 함수, CASE 함수 (0) | 2020.06.16 |
---|---|
NULL 관련 함수 (0) | 2020.06.16 |
날짜형 함수 (0) | 2020.06.15 |
숫자형 함수 (0) | 2020.06.15 |
문자형 함수 (0) | 2020.06.15 |