본문 바로가기
SQL/oracle

oracle SQL - 날짜 함수

by jun.s.gi 2023. 3. 28.
728x90

오라클 SQL은 데이터 유형이 date(날짜)인 데이터를 이용한 함수들이 존재한다.

 

1. MONTHS_BETWEEN(date1, date2) 

두 날짜 사이의 달 수를 반환한다.

MONTHS_BETWEEN()함수는 날짜 데이터 두 개를 받으면 숫자(숫자 타입)를 반환한다.

trunc 함수를 사용한 이유는 입사한 날짜로부터 현재까지 정확이 111개월이 아니므로 실수가 나오기 때문에 가독성을 위해 trunc함수 사용

입사 날짜부터 현재 날짜까지 몇개월이 걸렸는지 나타낸다.

 

 

2. ADD_MONTHS(date, n)

2번째 인수 n달 만큼 더한 날짜를 반환한다.

 

3. NEXT_DAY(date, '요일')

date 날짜로부터 오는 '요일'의 날짜를 반환한다.

 

'요일' 자리에는

숫자 : 1은 일요일, 2는 월요일, ....7은 토요일이다.

'금요일' 

'금' (약어) 가 올 수 있다.

2023년 3월 28일 기준 오는 일요일은 23년 4월 2일

 

 

4. LAST_DAY(date)

지정된 날짜를 포함한 달의 말일을 반환한다.

1월이면 31일, 2월인데 윤년이면 29일 등등

2024년은 윤년이므로 2월은 29일

 

 

5. ROUND, TRUNC(date[, ' f ' ])

'f'에 지정된 단위로 반올림, 절삭한 날짜를 반환한다.

'f'에는 년,월,일 등이 들어간다

 

round : 16일은 한 달의 절반 이상이므로 다음 달 1일

trunc : 날짜와 상관없이 해당 달의 1일 

 

 

round : 7월은 한 해의 절반 이상에 속하기 때문에 다음 해 1월 1일

trunc : 달 상관 없이 해당 해의 1월 1일

 

 

round : 12시가 지나면 다음 날짜 12시 전이면 그대로

trund : 시간 상관없이 오늘(쿼리를 실행한 날짜)

 

 

 

DAY가 들어오면 수요일 12시 기준 지났으면 오는 일요일 날짜

지나지 않았으면 지난 일요일 날짜

즉 한 주의 시작 날짜를 알려준다.

728x90