날짜형 함수 정리
// 강의 내용 정리 --------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------
-- 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
'Programming > Oracle' 카테고리의 다른 글
[1일차] 계정생성 (0) | 2013.08.27 |
---|---|
[6일차] 뷰(View) (0) | 2013.08.27 |
[5일차-1] 통계_그룹함수 (0) | 2013.08.26 |
sqlDeveloper로 DB사용자 추가 하기 및 sql 질의 싱행해 보기 (0) | 2013.08.21 |
개발자가 필요한 오라클 간단 정리 (0) | 2013.08.21 |