데이터분석/SQL

5. 날짜 관련 함수 ② (TO_CHAR, TO_DATE)

tout l'été 2023. 11. 24. 23:13

 

 

안녕하세요.

지난 번에 이어 날짜 관련 함수는 업무 중에도 유용하게 자주 쓰일 것 같아 기록하려고 합니다. 

 

 

< INDEX >

1. 날짜 간 개월 수 출력 (MONTHS_BETWEEN)

2. 개월 수 더한 날짜 출력  (ADD_MONTHS)

3. 특정 날짜 뒤에 오는 요일 날짜 출력 (NEXT_DAY)

4. 특정 날짜가 있는 달의 마지막 날짜 출력 (LAST_DAY)

5. 문자형으로 데이터 유형 변환 (TO_CHAR)

6. 날짜형으로 데이터 유형 변환하기 (TO_DATE)

 

 

 


 

 

5. 문자형으로 데이터 유형 변환 (TO_CHAR)

5.1 이름이 SCOTT인 사원의 이름과 입사한 요일 출력, SCOTT의 월급에 천 단위 출력하기

SELECT ename, TO_CHAR(hiredate, 'DAY') as "요일", TO_CHAR(sal, '999,999') as "월급"
    FROM emp
    WHERE ename = 'SCOTT';

 

출력 결과

 

 

5.2  KING 사원의 입사일의 연도, 달, 일, 요일 출력하기 

SELECT TO_CHAR(hiredate, 'RRRR') as 연도, TO_CHAR(hiredate, 'MM') as 달,
           TO_CHAR(hiredate, 'DD') as 일, TO_CHAR(hiredate, 'DAY') as 요일
           FROM emp
           WHERE ename = 'KING';

 

출력 결과

 

 

5.3 1981년도에 입사한 사원의 이름과 입사일 출력하기

SELECT ename, hiredate
    FROM emp
    WHERE TO_CHAR(hiredate, 'RRRR') = '1981';

 

출력 결과

 

 

5.4 사원들의 입사 년도/달/요일 출력하기

SELECT ename as 이름, EXTRACT(year from hiredate) as 연도,
                               EXTRACT(month from hiredate) as 달,
                               EXTRACT(day from hiredate) as 요일
         FROM emp;

 

출력 결과 

 

5.5 사원의 이름, 월급은 천 단위 표시해서 출력 

SELECT ename as 이름, TO_CHAR(sal, '999,999') as 월급 
    FROM emp;

 

출력 결과 

 

5.6 월급의 천 단위와 백만 단위 표시해서 출력하기 

SELECT ename as 이름, TO_CHAR(sal*200, '999,999,999') as 월급
    FROM emp;

 

출력 결과 

 

알파벳 L을 사용하면 화폐 단위 ₩(원화)를 붙여 출력 가능합니다. 

SELECT ename as 이름, TO_CHAR(sal * 200, 'L999,999,999') as 월급 
    FROM emp;

 

출력 결과 

 

 

6. 날짜형으로 데이터 유형 변환하기 (TO_DATE)

6.1 입사일자가 81.11.17인 사원들의 이름, 입사일 출력하기

SELECT ename, hiredate 
    FROM emp 
    WHERE hiredate = TO_DATE('81/11/17', 'RR/MM/DD');

 

출력 결과

 

 

6.2 현재 접속한 세션의 날짜 형식 확인하기

SELECT * 
    FROM NLS_SESSION_PARAMETERS
    WHERE parameter = 'NLS_DATE_FORMAT' ;

 

출력 결과

 

 

6.3 날짜 형식 변경  -> 일/월/년

ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/RR';

SELECT ename, hiredate
    FROM emp
    WHERE hiredate = '17/11/81';

 

출력 결과

 

 

 

6.4 날짜 형식 변경  -> 년/월/일

ALTER SESSION SET NLS_DATE_FORMAT = 'RR/MM/DD';

 

 

 

 

 

감사합니다,

다음 장에서는 NULL값과 관련한 공부 기록을 진행할 예정입니다.🙌