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 |