본문 바로가기
데이터베이스/SQL

SQL MONTHS_BETWEEN, ADD_MONTHS, INTERVAL, NEXT(LAST)_DAY,

by ADELA_J 2023. 9. 22.

<MONTHS_BETWEEN>

 

- 입사한 날짜부터 오늘까지 총 몇 달을 근무했는지 출력

▶ 오늘 날짜를 기준으로 오늘까지 몇달 근무했는지 알려주는, 

  ▷ MONTHS_BETWEEN(최신날짜, 예전날짜)

 

- 만약 위의 함수를 안쓰고 한다면 날짜로 산술식을 작성해야함

넘나 번거로우니까 MONTHS_BETWEEN을 많이 씀

주수를 출력하려면 /7 을 하면되겠쥬? 

▷ 달을하려면 / 30 할지 / 31 할지 헷갈리니까 이럴때는 MONTHS_BETWEEN 쓰면 좋음👍

 

<ADD_MONTHS>

- 2023년 9월 21일로부터 100달 뒤의 날짜는 어떻게 되는지 출력

 

- 100일 뒤는 언제인지 알려주는 쿼리

ㅎ 아니 세상에 2일 뒤면 크리스마스 D-100이라니

▷ 그런데 이렇게 했을 때 달의 기준을 30일로 해야할지 31일로 해야할지 어렵기 때문에 ADD_MONTHS 함수 사용 가능

 

▶▶▶ INTERVAL 함수를 사용하면 좀 더 섬세하게 날짜 산술 연산 가능!

INTERVAL 표현식 설명
INTERVAL '4' YEAR An interval of 4 years 0 months
INTERVAL '123' YEAR(3) An interval of 123 years 0 months
INTERVAL '6' MONTHS An interval of 6 months
INTERVAL '600' MONTHS(3) An interval of 600 months
INTERVAL '400' DAY(3) 400 days
INTERVAL '10' HOUR 10 hours
INTERVAL '10 MINUTE 10 minutes
INTERVAL '4' DAY 4 days
INTERVAL '25' HOUR 25 hours
INTERVAL '40' MINUTE 40 minutes
INTERVAL '120' HOUR(3) 120 hours

▶ TO_YMINTERVAL 함수를 이용하면 몇년 몇개월 후의 날짜를 출력할 수 있음.

TO_YMINTERVAL 도 되고 INTERVAL도 되고 뭐든 편한대로

 

<NEXT_DAY>

- 특정 날짜로부터 바로 돌아올 월요일의 날짜가 어떻게 되는지 출력해보기

오오 짱 신기

<SYSDATE> 

- 오늘 날짜 출력

- NEXT_DAY 와 SYSDATE 를 합쳐서..!

- NEXT_DAY랑 ADD_MONTHS를 합쳐서 함수 중첩해서 사용 가능. 

오늘 날짜를 SYSDATE로 써서 해도 충분히 가능

<LAST_DAY>

- 해당 달의 마지막 날짜가 어떻게 되는지 출력

- 월 말까지 남은 날짜가 몇 일인지도 알 수 있음.

----- 이름이 KING인 사원의 이름, 입사일, 입사한 달의 마지막 날짜를 출력하는 쿼리