본문 바로가기

SQL

[Oracle] 날짜 내장 함수

1. 현재 시간 

SELECT SYSDATE FROM DUAL; // 24/06/15
SELECT CURRENT_DATE FORM DUAL; // 24/06/15
SELECT SYSTIMESTAMP FROM DUAL; // 24/06/15 00:00:00.000000000 + 09:00
SELECT CURRENT_TIMESTAMP FROM DUAL; // 24/06/15 00:00:00.000000000 + 09:00

 

2. 날짜 형식 변경

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

ALTER SESSION SET TIME_ZONE = '09:00'; // 한국 시간

 

* 참고로 SYSDATE는 오라클 시스템 날짜이고, CURRENT_DATE는 TIME_ZONE에 맞는 시간이 나오게 됩니다.

 

3. EXTRACT - 날짜 추출 함수

SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL; 
SELECT EXTRACT(MONTH FROM SYSDATE) FROM DUAL;

 

4. ADD_MONTHS - 날짜 누적

SELECT ADD_MONTHS(SYSDATE, 1) FROM DUAL; // 1개월 추가
SELECT ADD_MONTHS(SYSDATE, -1) FROM DUAL; // 1개월 감소

 

5. MONTHS_BETWEEN - 날짜의 차이

SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE('2016-12-22')) FROM DUAL;

 

* 참고로 개월 차이 소수점으로 나옵니다.

 

6. NEXT_DAY - 다음 요일

SELECT NEXT_DAY(SYSDATE, '토') FROM DUAL; // 오늘 날짜에서 토요일 날짜 구해줌

 

* 참고로 토요일이라고 써도 됩니다. 7도 가능합니다. (오라클은 일요일이 1)

 

7. LAST_DAY - 이번달 마지막 일

SELECT LAST_DAY(SYSDATE) FROM DUAL; // 현재 월의 마지막 날짜

 

'SQL' 카테고리의 다른 글

[Oracle] 트리거  (1) 2024.06.16
[Oracle] 프로시저  (0) 2024.06.16
[Oracle] 숫자 내장 함수  (0) 2024.06.15
[Oracle] 문자열 내장 함수  (0) 2024.06.15
[Oracle] 기초 (MySQL과의 소소한 차이)  (0) 2024.06.08