반응형

TO_CHAR

문자열 형변환 (NUMBER/DATE → CHARACTER)

TO_CHAR(NUMBER/DATE, 포맷(생략가능))
--숫자를 문자열로
SELECT TO_CHAR(1234)
FROM DUAL; --'1234'

SELECT TO_CHAR(1234,'00000')
FROM DUAL; --'01234' : 빈칸을 지정해준 형식 0으로 채움

SELECT TO_CHAR(1234,'99999')
FROM DUAL; --' 1234' : 빈칸을 ' '(공백)으로 채움

--L : LOCAL 화폐단위표시
SELECT TO_CHAR(1234,'L00000')
FROM DUAL; --₩01234

SELECT TO_CHAR(1234,'L99999')
FROM DUAL; --₩1234

SELECT TO_CHAR(1234,'L99,999')
FROM DUAL; --₩1,234

--급여정보를 3자리마다 ,로 끊어서 출력. 화폐단위 포함
SELECT EMP_NAME, TO_CHAR(SALARY,'L999,999,999') AS 급여
FROM EMPLOYEE;

--날짜를 문자열로
SELECT TO_CHAR(SYSDATE)
FROM DUAL; --'22/03/18'

SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD')
FROM DUAL; --'2022-03-18' 

--시 분 초 : 오전(AM)/오후(PM)
--10:50:30
SELECT TO_CHAR(SYSDATE, 'PM HH:MI:SS')
FROM DUAL; --'오후 11:25:58' 12시간 형식 AM PM 

SELECT TO_CHAR(SYSDATE, 'HH24:MI:SS')
FROM DUAL; --'23:26:19' 24시간 형식 HH24 

SELECT TO_CHAR(SYSDATE, 'MON DY, YYYY')
FROM DUAL; --'3월  토, 2022' MON:N월, DY:X(요일) 

SELECT TO_CHAR(SYSDATE, 'MON DAY,YYYY')
FROM DUAL; --'3월  토요일,2022' DAY: X요일 

--년도를 표현할수 있는 포멧
SELECT TO_CHAR(SYSDATE, 'YYYY') AS "YYYY" --'2022'
      ,TO_CHAR(SYSDATE, 'RRRR') AS "RRRR" --'2022' R이 반올림(ROUND)
      ,TO_CHAR(SYSDATE, 'YY') AS "YY" --'22' 앞에 20이 붙지만 생략(20)22
      ,TO_CHAR(SYSDATE, 'RR') AS "RR" --'22' 50년기준에서 작으면 앞에 20이 붙고 크면 19가 붙음
      ,TO_CHAR(SYSDATE, 'YEAR') AS "YEAR" --'TWENTY TWENTY-TWO'
FROM DUAL;

--월을 표현할수 있는 포멧
SELECT TO_CHAR(SYSDATE,'MM') AS "MM" --'03'
      ,TO_CHAR(SYSDATE, 'MON') AS "MON" --'3월'
      ,TO_CHAR(SYSDATE, 'MONTH') AS "MONTH" --'3월'
      ,TO_CHAR(SYSDATE, 'RM') AS "RM" --'III' 로마숫자로 표기
FROM DUAL;

--일을 표현할수 있는 포멧
SELECT TO_CHAR(SYSDATE,'D') --일주일 기준으로 일요일부터 몇일째인지 알려주는 포맷
      ,TO_CHAR(SYSDATE,'DD') --한달 기준으로 1일부터 몇일째인지 알려주는 포맷
      ,TO_CHAR(SYSDATE,'DDD') --일년 기준으로 1/1부터 몇일째인지 알려주는 포맷
FROM DUAL;

--요일로 쓸수 있는 포멧
SELECT TO_CHAR(SYSDATE,'DY') -- 요일단위 미포함 EX)금
      ,TO_CHAR(SYSDATE,'DAY') -- 요일단위 포함 EX)금요일
FROM DUAL;

--'2022년 03월 18일 (금)' 포맷으로 조회
SELECT TO_CHAR(SYSDATE, 'YYYY"년" MM"월" DD"일" (DY)')
FROM DUAL;

--2010년 이후에 입사한 사원들의 이름과 입사일을 위의 포멧으로 출력
SELECT EMP_NAME AS 직원명, TO_CHAR(HIRE_DATE, 'YYYY"년" MM"월" DD"일" (DY)') AS 입사일
FROM EMPLOYEE
WHERE EXTRACT(YEAR FROM HIRE_DATE) >= 2010;

반응형

+ Recent posts