날짜형 함수 정리


// 강의 내용 정리 --------------------------------------------------------------------------

//-----------------------------------------------------------------------------------------


-- sysdate는 현재 날짜를 출력한다.

-- '현재날짜'는 임시 컬럼, dual은 임시 테이블 예약어다.

select sysdate 현재날짜 from dual;


-- 어제, 현재, 내일의 날짜 구하기

select sysdate-1 어제, sysdate 현재, sysdate+1 내일 from dual;


-- 다음달, 지난달 구하기 --

-- add_months()함수가 지난달, 다음달, 또는 특정의 달을 구한다.

select sysdate 현재, add_months(sysdate, 1) 다음달,

                    add_months(sysdate,-1) 지난달 from dual;



-- 특정 날짜 부터 현재까지의 개월 수 구하기 --

-- months_between()함수를 사용하면 특정 구간의 개월 수를 구할 수 있다.

select months_between(sysdate, '2000-1-1') from dual;

-- 소수점 제거 floor 함수를 사용.

select floor(months_between(sysdate, '2000-1-1')) from dual;


-- 날짜형을 문자로 출력하기 --

-- YYYY, MM, DD, HH, MI, SS 서식을 이용하여 문자형으로 출력할 수 있다.

select to_char(sysdate, 'YYYY') 년,

       to_char(sysdate, 'MM') 월 from dual;

       

-- 실제 테이블(sawon)에 있는 사원의 입사년도(sahire컬럼)의 입사년도만 출력. 

select to_char(sahire, 'YYYY') 입사년도 from sawon;



-- 나머지 자세한 사항은 아래를 내용을 참고하도록 한다.


// 강의 내용 -------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------------


날짜 + n : 일수를 더한다


add_months(날짜,숫자) :월수 더한다(빼기도 한다)

months_between(날짜1,날짜2)


--현재 시스템 날짜 구하기

select sysdate 현재,sysdate+1 내일, sysdate-1 어제 from dual;


select sysdate, add_months(sysdate,1) 다음달,

                add_months(sysdate,-1) 지난달 from dual;

--개월수 구하기                

select months_between(sysdate,'2000-1-1') from dual;


--나 얼마나 살았냐?(개월단위)

select months_between(sysdate,'1980-1-1') 개월 from dual;


select * from sawon;


--사원테이블에서 근무월수를 알고 싶다

select sabun,saname,sahire, 

       floor(months_between(sysdate,sahire)) 근무월수,

       trunc(months_between(sysdate,sahire),0) 근무월수1,

       floor(months_between(sysdate,sahire)/12) 근무년수,

       floor(mod(months_between(sysdate,sahire),12)) 잔여월수

from sawon;


-- to_char(날짜,'YYYY')

select 

       to_char(sysdate,'YYYY') 년 ,

       to_char(sysdate,'MM') 월 ,

       to_char(sysdate,'DD') 일 ,

       to_char(sysdate,'HH') 시 ,

       to_char(sysdate,'MI') 분 ,

       to_char(sysdate,'SS') 초 

from dual;


select * from sawon;


--입사년도별 인원수 구하기

select to_char(sahire,'YYYY') 입사년도 from sawon;


select to_char(sahire,'YYYY') 입사년도,count(*) from sawon

group by to_char(sahire,'YYYY')

order by to_char(sahire,'YYYY');


--입사년대별 인원수


select floor(to_char(sahire,'YYYY')/10) || '0' 입사년대 from sawon;


--  입사년대    인원수

    1980          3

    1990          8

    2000

+ Recent posts