--- ○ 변환형 함수
-- ↙-- to_number -┐↙--- to_char --┐
-- number char date
-- └-- to_char ---↗└-- to_date ---↗
select sysdate,
to_char(sysdate,'year'), -- two thousnad seven
to_char(sysdate,'yyyy'), -- 2007
to_char(sysdate,'month'), -- february
to_char(sysdate,'mon'), -- feb
to_char(sysdate,'mm'), -- 02
to_char(sysdate,'dd'), -- 14
to_char(sysdate,'hh am'), -- 03 오후
to_char(sysdate,'hh24'), -- 15
to_char(sysdate,'mi'), -- 39
to_char(sysdate,'ss'), -- 43
to_char(sysdate,'sssss') -- 56383 : 현재날짜의 0시0분0초로부터 현재까지 지나간 초를 나타낸다.
from dual;
select to_char(sysdate,'day') -- 요일명 표시
from dual;
select to_char(sysdate,'ddd') -- 현재 년도의 첫째일부터 현재날짜까지 지나온 일수를 표시
from dual;
select to_char(sysdate,'dd') -- 현재 달의 첫째일로부터 현재날짜까지 지나온 일수를 표시
from dual;
select to_char(sysdate,'d') -- 현재 주의 첫째일로부터 현재날짜까지 지나온 일수를 표시
from dual;
select to_char(sysdate, 'q') -- 현재 년도의 분기를 표시한다
from dual;
select to_char(sysdate, 'fmyyyy-mm-dd') from dual; -- fm을 표시하면 앞에 숫자0이 포함되면 나타지않는다.
--------- 연습문제 : 오늘의 날짜를 다음 같이 나타내시오. (2007년 2월 14일 수요일)
select to_char(sysdate, 'yyyy') || '년 ' || to_char(sysdate, 'fmmm') || '월 ' ||
to_char(sysdate, 'fmdd') || '일 ' ||to_char(sysdate, 'day') "오늘의 날짜"
from dual;
--------- 연습문제 : 내가 태어난 요일명은 무엇일까?
select to_char(to_date('1981-08-09','yyyy-mm-dd'), 'day') "내가태어난 요일" from dual;
---- 숫자 -> 문자 변환 기타
select 1234567, to_char(1234567, 'L9,999,999') -- 'L9,999,999' 이렇게 입력하면 해당국가의 통화표시가 나온다.
from dual;
select 1234567, to_char(1234567, 'L9,999,999.99') -- 소숫점 표시도 가능하다.
from dual;
select 1234567, to_char(1234567, '09999999') -- 해당 숫자앞에 0을 넣을수도 있다.
from dual;
select ename, to_char(sal, '$9,999') sal
from emp;
select sysdate,
to_char(sysdate,'yyyy'), -- to_char 는 문자형태로 보여지므로 왼쪽정렬
to_char(sysdate,'mm'),
to_char(sysdate,'dd'),
extract(year from sysdate), -- extract는 숫자형태로 보여지므로 오른쪽정렬
extract(month from sysdate), -- 시, 분, 초는 표시되지 않는다.
extract(day from sysdate)
from dual;