Or05Date

/*******

# 파일명 : Or05Date.sql

# 날짜함수

# 설명 : 년,월,일,시,분,초의 포맷으로 날짜형식을 지정할 때 사용되는 함수

*******/


--sysdate : 시스템의 날짜를 가져와서 반환한다.

select sysdate, to_char(sysdate, 'yyyy-mm-dd HH24:MI:SS') from dual;


/*

    month_between()

    : 현재날짜와 기준날짜 사이의 개월수를 반환한다.

    사용법 : months_between(현재날짜, 기준날짜([현재보다 이전날짜])

*/


select * from employees;

/*

    employees 테이블에 입력되어있는 직원들의 현재까지의 근무개월수를 계산하여

    출력하기

*/

select first_name, last_name, hire_date,

    floor(months_between(sysdate, hire_date)) AS "근속개월수1",

    months_between(sysdate, hire_date) AS "근속개월수2"

from employees

where department_id=50;



/* 2000년 1월 1일부터 현재까지의 누적개월수 */

select

    months_between(sysdate, '00/01/01') as "2000년부터1",

    round(months_between(sysdate, '00/01/01')) as "2000년부터2"

from dual;


/*

    add_month()

    : 날짜에 개월수를 더한 결과를 반환한다.

    사용법 : add_months(현재날짜, 더할 개월수)

*/




-- 현재날짜 기준으로 7개월후의 날짜변환


select

    to_char(sysdate, 'yyyy/mm/dd') AS"현재날짜",

    add_months(sysdate, 7) AS "7개월후 날짜"

from dual;


--KOSMO31기 개강일과 6개월 후 수료일 계산(단순 6개월이므로 정확하지 않음)


select

    to_char('17/09/14') AS "개강일",

    add_months('17/09/14', 6) AS "수요일"

from dual;


/*

    next_day()

    : 현재날짜를 기준으로 인자로 주어진 요일에 해당하는 미래의 날짜변환

    사용법 : next_day(현재날짜 , '월요일')

    EX) 이번주 월요일은 몇일인가요?

*/


select 

    to_char(sysdate, 'yyyy/mm/dd') AS"오늘날짜",

    to_char(next_day(sysdate, '일요일'), 'yyyy/mm/dd') AS "이번주 일요일",

    to_char(next_day(sysdate, '수요일'), 'yyyy/mm/dd') AS "다음주 수요일"

from dual;


/*

    last_day() : 해당월의 마지막 날짜변환

    사용법 : last_day (현재날짜)

*/

select last_day(sysdate) from dual;

select 

    last_day('16/02/01') AS "16년은 윤년",

    last_day('17/02/01') AS "2017년",

    last_day('20/02/01') AS "20년은 윤년"

from dual;


/*

1. substr() 함수를 사용하여 사원들의 입사한 년도와 입사한 달만 출력하시오.

*/

select * from employees;


select first_name,

    substr(hire_date, 1.2)년도, substr(hire_date, 4.2)달

from employees;


/*

2. substr()함수를 사용하여 4월에 입사한 사원을 출력하시오.

*/


select first_name,

    substr(hire_date, 1.2)년도, substr(hire_date, 4.2)달,

where substr(hire_date, 4.2) = '04'

from employees;


/*

3. mod() 함수를 사용하여 사원번호가 짝수인 사람만 출력하시오.

*/


select

    employee_id as "짝수인 사원번호"

from employees

where mod(employee_id, 2) =0 ;















'프로그래밍 > Oracle' 카테고리의 다른 글

Or07Join  (0) 2017.11.15
Or06GroupBy  (0) 2017.11.15
Or04TypeConvert  (0) 2017.11.15
Or03String  (0) 2017.11.15
Or02Number  (0) 2017.11.15
TAGS.

Comments