Itwill 학습내용 정리/1. SQL

2.3 (단일행 함수) 날짜 함수

cannonvirus 2019. 4. 18. 08:23


※ EMP 테이블 구조


※ 날짜 함수

함수 결과
months_between 두 날짜 간의 개월 수
add_months 날짜에 월 추가
next_day 지정된 날짜의 다음 특정 요일의 날짜
last_day 해당 월의 마지막 날
round 날짜의 반올림
trunc 날짜 truncate

 

 # 문제 42. 이름, 입사한 날짜부터 오늘까지 총 몇일 근무했는지 출력하시오.

 

select ename, round(sysdate-hiredate)

  from emp;

 - sysdate는 오늘 날짜를 날짜형식에 맞춰서 출력해준다.

 # 문제 43. 이름, 입사한 날짜부터 오늘까지 총 몇달을 근무했는지 출력하시오.

 

select ename, round(months_between(sysdate, hiredate))

  from emp;

 - months_between(최신, 과거) 형식을 꼭 지켜줘야 한다!!!

 # 문제 44. 오늘 날짜에서 100일 뒤의 날짜를 출력하시오.

 

select sysdate + 100

  from dual;

 # 문제 45. 오늘 날짜에서 10달 뒤의 날짜를 출력하시오.

 

select add_months(sysdate,10)

  from dual;

 # 문제 46. 오늘 날짜에서 앞으로 돌아올 금요일의 날짜를 출력하시오.

 

select next_day(sysdate, '금요일')

  from dual;

 - 한글 sqlgate를 사용하고 있기 때문에 금요일이라 써도 무방하지만 보통 Friday를 쓴다.

 # 문제 47. 오늘 날짜에서 100달뒤 돌아올 월요일의 날짜를 출력하시오.

 

select next_day( add_months(sysdate,100), '월요일' )

  from dual;

 # 문제 48. 이번 달의 마지막 날짜를 출력하시오.

 

select last_day(sysdate)

  from dual;