[oracle] Function - 날짜 함수

재현·2024년 6월 7일
post-thumbnail

🔍 함수

✍ 특정한 결과 값을 얻기 위해 데이터를 입력할 수 있는 특별한 명령어, 크게 내장형 함수사용자 정의 함수 로 나뉜다.

✍ 내장 함수 : 오라클 내부에서 기본으로 제공하는 함수, 단일행 함수와, 다중행 함수 로 나뉜다.
✍ 단일행 함수(Single-row-function) : 데이터가 한 행씩 입력되고, 입력된 각 행별로 결과가 하나씩 나오는 함수
✍ 다중행 함수(Multiple-row-function): 여러 행이 입력되어, 하나의 행으로 결과가 반환되는 함수

✍ 이 글에선 오라클에서 제공하는 내장 함수 중 날짜 함수를 알아보도록 하겠습니다.

🔍 SYSDATE, SYSTIMESTAMP 함수

✍ 현재날짜(SYSDATE), 현재날짜와 시간을 같이(SYSTIMESTAMP) 출력하는 함수

-- 날짜 함수
-- 현재 날짜
SELECT SYSDATE FROM DUAL;

-- 현재 날짜 시간
SELECT SYSTIMESTAMP FROM DUAL;

-- 입사일부터 근무한 주의 합계
SELECT FIRST_NAME, (SYSDATE - HIRE_DATE)/7 AS WEEKS
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 60;

🔍 MONTHS_BETWEEN 함수

✍ 두 날짜간의 개월 수 차이를 구하는 함수

MONTHS_BETWEEN([날짜 데이터1(필수)], [날짜 데이터2(필수)])
-- MONTHS_BETWEEN(A, B) = A부터 B까지 개월 수
SELECT FIRST_NAME, SYSDATE, HIRE_DATE, MONTHS_BETWEEN(SYSDATE, HIRE_DATE) AS WORKMONTH
FROM EMPLOYEES
WHERE FIRST_NAME = 'Diana';

🔍 ADD_MONTHS 함수

✍ 주어진 날짜에 개월 수를 더하여 출력하는 함수

ADD_MONTHS([날짜 데이터(필수)], [더할 개월 수(정수)(필수)])
-- ADD_MONTHS(A, B) = A날짜 부터 B개월 후 날짜
SELECT FIRST_NAME, SYSDATE, HIRE_DATE, ADD_MONTHS(HIRE_DATE, 100)
FROM EMPLOYEES
WHERE FIRST_NAME = 'Diana';

🔍 NEXT_DAY, LAST_DAY 함수

✍ NEXT_DAY는 주어진 날짜를 이후로 돌아오는 요일의 날짜를 출력해주는 함수이고, LAST_DAY는 해당 날짜가 속한 월의 마지막 날을 출력한다.

NEXT_DAY([날짜 데이터(필수)], [요일 문자(필수)])
LAST_DAY([날짜 데이터(필수)])
-- NEXT_DAY(A, B) = A날짜 기준으로 다음 B의 날짜가 되는 날
SELECT SYSDATE, NEXT_DAY(SYSDATE, '월') FROM DUAL;

-- LAST DAY(A) = A월의 마지막 날짜
SELECT SYSDATE, LAST_DAY(SYSDATE) FROM DUAL;

🔍 날짜 ROUND, TRUNC 함수

✍ 숫자를 반올림, 절삭하는 함수지만, 날짜에도 적용이 가능하다.

-- ROUND, TRUNC = 반올림, 절삭
SELECT ROUND(SYSDATE), TRUNC(SYSDATE) FROM DUAL;

SELECT ROUND(SYSDATE, 'MONTH'), TRUNC(SYSDATE, 'MONTH') FROM DUAL;

-- ROUND는 문자열의 날짜는 문자열로 인식하기 때문에 TO_DATE로 날짜로 변환시켜야 한다.
SELECT ROUND(TO_DATE('17/03/16'), 'MONTH') FROM DUAL;

📖 reference

https://earth-95.tistory.com/151
인프런 오라클 데이터베이스 강의

profile
운동과 코딩

0개의 댓글