●날짜 간 개월 수 출력하기
1. 이름을 출력하고, 입사한 날짜부터 오늘까지 총 몇달 근무했는지 출력해보기
sysdate : 오늘 날짜 확인하는 함수
MONTHS_BETWEEN: 날짜를 다루는 함수, 날짜 값 입력받아 숫자 값을 출력
MONTHS_BETWEEN(최신 날짜, 예전 날짜)
MONTHS_BETWEEN 함수를 사용하지 않을 시
SELECT TO_DATE('yyyy-mm-dd' , 'RRRR-MM-DD') - TO_DATE('yyyy-mm-dd' , 'RRRR-MM-DD')
FROM dual;
TO_DATE 함수가 yyyy.mm.dd 의 연도, 달, 일 - RRRR.MM.DD 으로 명시
●개월 수 더한 날짜 출력하기
2. 현재 날짜로부터 100달 뒤의 날짜 출력하기
ADD_MONTHS 함수 사용
100일 후의 날짜는
INTERVAL
INTERVAL함수 사용하면 좀 더 섬세한 계산이 가능하다
INTERVAL 표현식 | 설명 |
INTERVAL '4' YEAR | AN INTERVAL OF 4YEARS 0 MONTHS |
INTERVAL '123'(3) | AN INTERVAL OF 123 YEARS 0 MONTHS |
INTERVAL '6'MONTHS(3) | AN INTERVALOF 6 MONTHS |
INTERVAL '600'MONTHS(3) | AN INTERVALOF 600 MONTHS |
INTERVAL '400'DAYS(3) | 400DAYS |
INTERVAL 사용 시 연도가 한 자리인 경우는 YEAR 사용, 연도가 3자리인 경우 YEAR(3) 사용
N년 M개월 후의 날짜를 출력하고 싶을때
TO_YMINTERVAL 함수 사용
SELECT TO_DATE('2023-04-25' , 'RRRR-MM-DD') + TO_YMINTERVAL('0N-0M') as 날짜
FROM DUAL;
●특정 날짜 뒤에 오는 요일 날짜 출력
3. 현재로부터 바로 돌아올 화요일 날짜 출력해보기
오늘 날짜 출력 쿼리
SELECT SYSDATE as 오늘 날짜
FROM DUAL;
-> 오늘부터 앞으로 돌아올 n요일의 날짜 출력하는 쿼리
SELECT NEXT_DAY(SYSDATE, 'n요일') as "다음 날짜"
FROM DUAL;
-> 현재로부터 n달 뒤에 돌아오는 m요일의 날짜 출력하는 쿼리
SELECT NEXT_DAY(ADD_MONTHS(SYSDATE , n), 'm요일') as "다음 날짜"
FROM DUAL;
●특정 날짜가 있는 달의 마지막 날짜 출력하기
4. yyyy.mm.yy 해당 달의 마지막 날짜 출력하기
오늘부터 이번달 말까지 총 며칠 남았는지 출력하는 쿼리
SELECT LAST_DAY(SYSDATE) - SYSDATE as "남은 날짜"
FROM DUAL;
5. 이름이 KING 인 사원의 이름, 입사일, 입사 한 달의 마지막 날짜 출력하기