Study/오라클

1112 날짜함수

나나83 2009. 11. 12. 14:49


*table 생성
create table table_name(
 컬럼명1 데이터타입(크기),
 ...
 컬럼명2 데이터타입(크기)
)


create table phone(
no number,
tel varchar2(13)
);

insert into phone
values(1,'02)123-4567');
 

insert into phone
values(1,'031)123-4567');

insert into phone
values(1,'055)1111-4567');

 

----------------------------------------------
1. 사원명,입사일을 최근에 입사한 사원부터 출력
2. 1의 결과에서 사원명은 앞글자만 대문자로 출력

3-1. 2의 결과내 5월에 입사한 사원만 출력-----

3-2. '2009-11-23'에서 년을 추출  -> 출력예: 2009년
3-3. '2009-11-23'에서 월을 추출  -> 출력예: 11월
3-4. '2009-11-23'에서 일을 추출  -> 출력예: 23일

4. 전화번호 '02)123-4567' 에서 지역번호를 추출
5. 전화번호 '031)123-4567' 에서 지역번호를 추출

 
select tel,substr(tel,1,       ')'의 위치-1          )
from phone

*날짜형 함수

-- 오늘 날짜 조회

날짜+-숫자 =날짜

add_months()
months_between()
next_day()
last_day()

-----------
*변환함수
날짜(or 숫자)를 문자로 변환 : to_char
            문자를 날짜로 변환 : to_date

 

select sysdate,  to_date('09/11/12','YY/MM/DD'),
        to_char(sysdate,'YYYY-MM-DD'),
        TO_CHAR(to_date('09/11/12','YY/MM/DD'), 'YYYY-MM-DD')
from dual
/

 

 select sysdate, sysdate-1,sysdate+1,sysdate+230
from dual
/


select sysdate, add_months(sysdate,1)
from dual
/

select sysdate, add_months(sysdate,-1)
from dual
/

select sysdate, hiredate,trunc(months_between(sysdate,hiredate)) as
from emp
where deptno=10
/

select sysdate, next_day(sysdate,'?')
from dual
/

select sysdate,last_day(sysdate),to_date('2009-02-16')    상당히 중요 to_date
from dual
/

select sysdate,last_day(sysdate),to_date('2009-02-16','YYYY-MM-DD')
from dual

/                                                              오라클의 기본세팅이 그대로 반영이 되어서  00/00/00 으로 나타난다.

 

select sysdate,last_day(sysdate),to_date('2009-02-16','YYYY-MM-DD'),
                                 last(to_date('2009-02-16','YYYY-MM-DD'))                                    
from dual
/