SQL/함수

FUNCTION(3) - 단일행 함수(형 변환 함수 - TO CHAR)

jjhim531 2024. 8. 13. 19:45
반응형

  << 형변환 함수  >>  

 

 < TO_CHAR > 

숫자 타입 또는 날짜 타입의 값을 문자타입으로 변환시켜주는 함수

[표현법]

TO_CHAR( 숫자 | 문자 ,  ' 포맷 ' )

* 포맷 :

  • 9  : 자릿수만큼 공간을 확보한다. 오른쪽 정렬.
SELECT
    to_char(12, '99999')
FROM
    dual;

9가 5개여서 5자리의 공간을 확보해준 후 12를 채워주고 나머지 3칸이 공백이다..


  •  0 : 자릿수만큼 공간을 확보한다. 왼쪽부터 빈 공간을 0으로 채워준다. 
SELECT
    to_char(12, '00000')
FROM
    dual;

 


  •  L99999... : 현재 설정된 나라의 로컬 화폐단위가 나타남.
  • $99999.... : 화폐단위가 $로 나타남.
SELECT
    to_char(2000000, 'L9999999')
FROM
    dual;

SELECT
    to_char(3500000, 'L9,999,999')
FROM
    dual;


 

< 주의!! >

* 만약 특정 숫자보다 9의 갯수를 적게 적어주면  결과값이 전부 ####...으로 표시된다.

* 만약 특정 숫자보다 9의 갯수를 많이 적어주면 남는 공간은 왼쪽에 공백으로 자리가 확보되어 보여진다.


 

<< 날짜 타입 ---> 문자타입 >>

SELECT
    to_char(sysdate, 'HH:MI:SS')
FROM
    dual;

12시간제로 표시되는 형식

 

 

SELECT
    to_char(sysdate, 'HH24:MI:SS')
FROM
    dual;

24시간제로 표시되는 형식

 

 

SELECT
    to_char(sysdate, 'YYYY-MM-DD DAY DY')
FROM
    dual;

 

 

SELECT
    to_char(sysdate, 'MON, YYYY')
FROM
    dual;

 

 

SELECT
    to_char(sysdate, 'YYYY"년" MM"월" DD"일" HH:MI:SS')
FROM
    dual;

 

 

SELECT
    emp_name,
    to_char(hire_date, 'YYYY"년" MM"월" DD"일"')
FROM
    employee;

 

 

>> "연도"와 관련된 포맷 <<

SELECT
    to_char(sysdate, 'YYYY'),
    to_char(sysdate, 'YY'),
    to_char(sysdate, 'RRRR'), -- RR룰이 따로 존재한다 -> 50년 이상 값이면 + 100 EX) 1954
    to_char(sysdate, 'YEAR') --기본적으로 영어로 나오지만 
 		 	--프로그램에서 자동으로 한글로 출력해주는 경우(월, 요일 등)가 종종있다.
FROM
    dual;

 

>> "월"과 관련된 포맷 <<

SELECT
    to_char(sysdate, 'MM'),
    to_char(sysdate, 'MON'),
    to_char(sysdate, 'MONTH')
FROM
    dual;

 

>> "일"과 관련된 포맷 <<

SELECT
    to_char(sysdate, 'DDD'), -- 오늘이 이번년도에 몇번째 일수
    to_char(sysdate, 'DD'), --오늘 일자
    to_char(sysdate, 'D') -- 요일 -> 숫자 ex) 금요일이면 6
FROM
    dual;

 

>> "요일"과 관련된 포맷 <<

SELECT
    to_char(sysdate, 'DAY'),
    to_char(sysdate, 'DY')
FROM
    dual;

 

 

<< 요약 >>

728x90
반응형