오라클 SQL은 데이터 유형이 date(날짜)인 데이터를 이용한 함수들이 존재한다.
1. MONTHS_BETWEEN(date1, date2)
두 날짜 사이의 달 수를 반환한다.
MONTHS_BETWEEN()함수는 날짜 데이터 두 개를 받으면 숫자(숫자 타입)를 반환한다.

입사 날짜부터 현재 날짜까지 몇개월이 걸렸는지 나타낸다.
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시 기준 지났으면 오는 일요일 날짜
지나지 않았으면 지난 일요일 날짜
즉 한 주의 시작 날짜를 알려준다.
'SQL > oracle' 카테고리의 다른 글
| oracle SQL - 데이터 유형의 변환 (TO_DATE()) (0) | 2023.03.28 |
|---|---|
| oracle SQL - 데이터 유형의 변환 (TO_NUMBER()) (0) | 2023.03.28 |
| oracle SQL - DML 매우매우매우 기초 (insert, update, delete) (0) | 2022.12.08 |
| oracle SQL - Join (ON).1 (0) | 2022.12.08 |
| oracle SQL - 조건 표현식 (DECODE, CASE) (0) | 2022.12.07 |