본문 바로가기

Oracle/SQL

SQL 단일행 함수 -변환함수 (To_date) 날짜형으로 변환

To _date (날짜형으로 변환),

나라마다 날짜형이 다르기 때문에 해당함수가 쓰인다.

 

내가 어떠한 환경에 있던 (나라 상관없이) 정확하게 81년 11월 17일에 입사한 사원의 데이터를 오류없이 검색하는 방법

년 월 일 모두를 출력 하는 경우에만 쓰일 수 있는 함수이다.

예제 : 이름과 입사일을 뽑는데 91년 11월17 일 인 사람들을 출력해라. 

select ename, hiredate

from emp

where hiredate = to_date ( '91/11/17', 'RR/NN/DD');

설명 : 확실하게 날짜를 검색하는 방법이다.

where 절에

where hiredate = '81/11/17'

도 검색이 되긴 한다. but 다른 환경(다른나라) 가면 오류가 뜰 수 있다는점

문제 : 81년도에 입사한 사원들의 이름과 입사일을 출력하시오!

select ename, hiredate

from emp

where hiredate between to_date('81/01/01', 'RR/MM/DD') and to_date('81/12/31','RRRR/MM/DD')+1

설명 : 81년 1월 1일 00시00분 00초 ~ 81 년 12 월 31일 00시 00분 00초 이기때문에 결국 12월 30일 까지만 인식이 되기때문에.. +1 로 하루를 더해 주어야 정확하게 12월 31일 까지 인식이 된다.

또는

select ename, hiredate

from emp

where hiredate like '81%'

like 연산자의 의미는 81 이후의 모든 데이터(%)를 가져오는것 이기때문에 가능하다. 


오라클 환경에 날짜 데이터 형식을 확인하는 방법

select *

from pls_session_parameters;

설명 : date format 에서 value 를 확인하면 된다.