위로 아래

문자 변환함수 TO_CHAR

숫자 날짜 타입의 data를 varchar2타입으로 변환

--질문 현재 날짜가 한주에서 몇쨰주인지 알 수 있다
SELECT SYSDATE, TO_CHAR(SYSDATE, 'w')
FROM dual;

 

다양한 날짜 표현 방법

SELECT TO_CHAR(SYSDATE, 'yy/mm/dd') AS date1,
TO_CHAR(SYSDATE, 'yyyy.mm.dd') AS date2,
TO_CHAR(SYSDATE, 'month dd.yyyy') AS date3,
TO_CHAR(SYSDATE, 'dy dd mon yy') AS date4,
TO_CHAR(SYSDATE, 'day mon dd') AS date5
FROM dual;

 

응용

--질문 temp테이블의 birth_date를 이용해서 사번별 오름차순으로 생일과 요일을 보여줘라
SELECT emp_id, TO_CHAR(birth_date,'yy.mm.dd.day')
FROM temp
ORDER BY emp_id ASC;

 

fm : 0을 제외하고 표현

--질문 emp 테이블에서 이름과 입사일을 0을 제외하고 표현하라
SELECT ename, TO_CHAR(hiredate,'fmYY-MM-DD')AS 입사일
FROM emp;

 

날짜 중간에 문자 표시

--질문 정의된 날짜를 출력할 때 중간에 문자값을 표시할 수 있음
SELECT SYSDATE, TO_CHAR(SYSDATE, 'dd"of"month')
FROM dual;

 

 

정의된 날짜를 서수로 표현
sp : 명시한 수를 문자로 표현 ex) ONE, TWO, THREE 등
th : 서수로 표현 ex) 3th 등
spth : 명수한 서수로 표현 ex) first, second, third 등

SELECT SYSDATE, TO_CHAR(SYSDATE,'ddspth')
FROM dual;

 

 

 

문자변환 함수 - 시간 형식 요소

24시 표기법

--현재 시간을 24시 표현식으로 출력
SELECT TO_CHAR(SYSDATE, 'HH24:MI;SS')
FROM dual;

 

 

am, pm 표기법

--질문 현재 시간을 am, pm 표기법으로 출력
SELECT TO_CHAR(SYSDATE, 'AM HH:MI')
FROM dual;

 

 

 

 

문자변환 함수 - 금액 형식 요소

숫자 값을 출력할 때 금액 표시

--질문 12506을 $9099,999 형식으로 출력
SELECT TO_CHAR(12506,'$9099,999')
FROM dual;

 

 

 

--질문 temp테이블의 salary를 0, $, L, MI, EEEE 형식이 되도록 표현
SELECT TO_CHAR(salary, '099,999,999') number1,
TO_CHAR(salary, '999,999,999.99') number2,
TO_CHAR(salary, '$999,999,999') number3,
TO_CHAR(salary, 'L999,999,999') number4,
TO_CHAR(salary, '999,999,999MI') number5,
TO_CHAR(salary, '9.999EEEE') number6
FROM temp;

 

 


숫자 변환함수 : TO_NUMBER

--질문 문자 100을 숫자값으로 출력
SELECT TO_NUMBER('100')
FROM dual;

 

 

 


날짜 변환함수 TO_DATE

정의된 날짜를 지정한 포맷으로 출력

 

--질문 정의된 날짜를 지정한 포맷으로 출력
SELECT TO_DATE('01-10-1999','dd-mm-yyyy')
FROM dual;

--질문 1970년 01월 01일 00시 00분 00초에서부터 946075441초가 지난 날짜를 date형식으로 바꾸기
SELECT TO_DATE('19700101000000','yyyymmddhh24miss')+946075441/(24*60*60)
FROM dual;