티스토리 뷰
- add_months:
add_months(특정월말, 1) - 월말 기준으로 1개월을 더해 다음월말을 출력
- numtoyminterval:
특정월말 + numtoyminterval(1, 'month') - 30일 이후를 반환.. 즉 n개월 후인 달이 총 몇일인지(28,29,30,31등)을 고려하지 않음
예:
SQL> SELECT DT, ADD_MONTHS(DT,1)
2 FROM (SELECT TO_DATE('29-FEB-2000','DD-MON-YYYY') DT FROM DUAL);
DT ADD_MONTHS(DT,1)
------------------- -------------------
2000-02-29 00:00:00 2000-03-31 00:00:00
SQL> SELECT DT, DT+NUMTOYMINTERVAL(1,'month')
2 FROM (SELECT TO_DATE('29-FEB-2000','DD-MON-YYYY') DT FROM DUAL);
DT DT+NUMTOYMINTERVAL(
------------------- -------------------
2000-02-29 00:00:00 2000-03-29 00:00:00
사실 위의 경우 주의점을 알고 있는 상태에서 사용은 가능하지만 아래처럼 n개월 후인 달에서 (28, 29, 30, 31)일이 없는 달이라면 쿼리 시 에러가 발생합니다.
예: (참고 - 2001년 2월은 28일이 마지막 날)
SQL> select dt, dt + numtoyminterval(1, 'month')
2 from (select to_date('2001-01-29', 'yyyy-mm-dd') dt from dual)
select dt, dt + numtoyminterval(1, 'month')
*
ERROR at line 1:
ORA-01839: date not valid for month specified
SQL> select dt, dt + numtoyminterval(1, 'month')
2 from (select to_date('2001-01-28', 'yyyy-mm-dd') dt from dual)
DT DT+NUMTOYMINTERVAL(
------------------- -------------------
2001-01-28 00:00:00 2001-02-28 00:00:00
(참고 - http://wiki.gurubee.net/pages/viewpage.action?pageId=28117355&)
'Database > Oracle Database' 카테고리의 다른 글
[오라클] 설치 시 responseFile, 파라미터, 상대 경로 주의 사항 (0) | 2022.01.18 |
---|---|
[오라클] 지연 쓰기, 빠른 커밋 (0) | 2022.01.17 |
[SQL*Plus] DESCRIBE 명령 출력 컬럼 사이즈 조정 (0) | 2022.01.16 |
[오라클]ismodified 컬럼 값 변경 시점 (v$parameter) (0) | 2022.01.15 |
[오라클] Health Checks 중 V$HM_CHECK_PARAM (0) | 2022.01.14 |