[SQL] 변환함수 TO_DATE

·2025년 7월 2일

SQL

목록 보기
47/126

예제 답

select ename, hiredate
 from  emp
 where hiredate ='81/11/17';

어느 나라에 가든 81년 11월 17일에 입사한 사원의 데이터를 출력하려면
다음과 같이 작성해야함

select ename, hiredate
 from  emp
 where hiredate = to_date('81/11/17','RR/MM/DD');
 
select ename, hiredate
 from  emp
 where hiredate = to_date('17/11/81','DD/MM/RR');

마지막 문제. (오라클 정규 교재 난이도 상)

select ename, sal, rpad('*', round(sal/100) , '*') as 월급
 from emp
 order by sal desc;

문제1. 지금 내가 접속한 현재 세션에 날짜 포멧이 어떻게 되는지 확인하시오

select *
 from nls_session_parameters;

년도 4자리년도 2자리시간
RRRR, YYYYRR, YYMMDDHH, HH24MISSWW, WI

문제2. 81년 11월 17일에 입사한 사원의 이름과 입사일을 출력하시오

select  ename, hiredate
 from  emp
 where hiredate = '81/11/17';
 
 select  ename, hiredate
 from  emp
 where hiredate = to_date('81/11/17','RR/MM/DD');

문제3. 현재 세션(session) 의 날짜형식을 YY/MM/DD 로 변경하시오

alter session set nls_date_format='YY/MM/DD';

select * 
  from nls_session_parameters;

💡 nls: national language support의 약자

alter session set nls_date_format='YY/MM/DD';

select * 
  from nls_session_parameters;
  
select * from emp;

select  ename, hiredate
 from  emp
 where hiredate = '81/11/17';

💡RR/MM/DD 날짜형식일 때는 잘 검색 되었는데
YY/MM/DD 날짜형식일 때는 검색 안됨

이유

RRYY
8181
19812081

💡 아래와 같이 코딩을 하는 습관을 들여야됨
select ename, hiredate
from emp
where hiredate = to_date('81/11/17','RR/MM/DD');


문제4. 1981년도에 입사한 사원들의 이름과 입사일을 출력하시오

select ename, hiredate
 from emp
 where hiredate between to_date('81/01/01', 'RR/MM/DD') and to_date('81/12/31', 'RR/MM/DD');

0개의 댓글