안녕하세요! 데코입니다!
오늘은 오라클에서 자주 이용하는 함수와 연산들을 소개하는 포스팅 하려고 합니다!
바로 포스팅 시작할게요! :)
1. 날짜 함수 소개
[ 1 ] TO_DATE()
TO_DATE 함수는 문자열을 날짜로 변환하는 함수입니다!
형식화된 날짜 문자열과 해당 날짜 형식을 함께 사용해서 표현합니다.
사용법 : TO_CHAR(날짜문자열, 날짜형식)
[ 2 ] TO_CHAR()
TO_CHAR 함수는 날짜를 문자열로 변환하는 함수입니다!
사용법 : TO_CHAR(날짜변수, 날짜형식)
[ 3 ] ADD_MONTHS()
ADD_MONTHS 함수는 주어진 날짜에 월을 더하여 계산하는 함수입니다!
사용법 : ADD_MONTHS(날짜변수, 월수) : 날짜변수에 월수를 더한 값을 출력
[ 4 ] TRUCK()
TRUNK 함수는 주어진 날짜에서 가장 가까운 단위로 버리는 함수입니다!
단위를 적지 않으면 일 단위로 제거가 되어요!
사용법 : TRUNK(날짜변수, 단위)
[ 5 ] LAST_DAY()
LAST_DAY 함수는 주어진 날짜의 마지막 요일을 반환해 주는 함수입니다!
사용법 : LAST_DAY(날짜변수)
[ 6 ] INTERVAL
INTERVAL은 함수는 아니지만, 날짜 간의 간격을 나타내주는 데이터 유형입니다!
날짜를 계산해 줄 때 주로 이용됩니다!
사용법 : 날짜변수 + INTERVAL 간격.
2. 자주 이용하는 날짜 만들기
-- 2024.02.13 기준
SELECT TRUNC(TO_DATE('2024-02-13', 'YYYY-MM-DD'), 'MONTH') AS date_2024_02_01
, LAST_DAY(TRUNC(TO_DATE('2024-02-13', 'YYYY-MM-DD'), 'MONTH')) AS date_2024_02_29
, TRUNC(TO_DATE('2024-02-13', 'YYYY-MM-DD'), 'MONTH') + INTERVAL '1' MONTH AS date_2024_03_01
, LAST_DAY(TRUNC(TO_DATE('2024-02-13', 'YYYY-MM-DD'), 'MONTH') + INTERVAL '1' MONTH) AS date_2024_03_31
, TRUNC(ADD_MONTHS(TO_DATE('2024-02-13', 'YYYY-MM-DD'), -1), 'MONTH') AS date_2024_01_01
, LAST_DAY(TRUNC(ADD_MONTHS(TO_DATE('2024-02-13', 'YYYY-MM-DD'), -1), 'MONTH')) AS date_2024_01_31
FROM dual;
'2024-02-13'을 기준으로
'2024-02-01', '2024-02-29', '2024-03-01', '2024-03-31', ' 2024-01-01', '2024-01-31'을 생성하는 쿼리예요!
- 해당일자의 첫 번째 날짜
- 해당일자의 마지막 날짜
- 해당일자 다음 달의 첫 번째 날짜
- 해당일자 다음 달의 마지막 날짜
- 해당일자 이전 달의 첫 번째 날짜
- 해당일자 이전 달의 마지막 날짜
주어진 날짜를 기준으로 첫 번째 일자와 마지막 일자를 구한 기억이 많아서 참고하면 좋을 것 같아서 추가했습니다!
" TRUNC(TO_DATE('2024-02-13', 'YYYY-MM-DD'), 'MONTH') AS date_2024_02_01 "
위 코드는 '2024-02-13'을 기준으로 해당 월의 첫 번째 날짜를 구한 코드입니다! 출력으로는 '2024-02-01'을 얻게 됩니다.
" LAST_DAY(TRUNC(TO_DATE('2024-02-13', 'YYYY-MM-DD'), 'MONTH')) AS date_2024_02_29 " 이 부분은!
'2024-02-13'을 기준으로 해당 월의 마지막 날짜를 구한 코드입니다! LAST_DAY 함수를 사용하여 해당 월의 마지막 날짜를 얻습니다! 출력 결과로는 '2024-02-29'를 얻게 됩니다.
TRUNC(TO_DATE('2024-02-13', 'YYYY-MM-DD'), 'MONTH') + INTERVAL '1' MONTH AS date_2024_03_01 " 이 부분은!
'2024-02-13'을 기준으로 해당 월의 첫 번째 날짜를 구하고, 그 날짜에 1개월을 더하여 다음 달의 첫 번째 날짜를 구한 코드입니다! 출력으로는 '2024-03-01'이 됩니다.
LAST_DAY(TRUNC(TO_DATE('2024-02-13', 'YYYY-MM-DD'), 'MONTH') + INTERVAL '1' MONTH) AS date_2024_03_31
이 부분은!
'2024-02-13'을 기준으로 해당 월의 다음 달의 첫 번째 날짜를 구하고,
LAST_DAY 함수를 사용하여 해당 월의 마지막 날짜를 구한 코드입니다!
출력으로는 '2024-03-31'을 얻게 됩니다.
3. 오라클 함수 검색
추가적인 오라클(Oracle) 함수에 대해서 검색하고 싶으면,
오라클에서 제공하는 "SQL Language Reference"에서 참고하시면 됩니다!
아래에 링크도 같이 첨부해 둘게요!!
링크 : https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/index.html#Oracle%C2%AE-Database
검색창에 궁금한 함수를 검색하면, 설명과 같이 예시도 같이 확인할 수 있어요! :)
4. 작성 후기
기존에 이용하던 DB가 Sybase에서 오라클로 변경되면서
연산들과 함수가 조금씩 달라지더라고요!
쿼리를 작성할 때 WHERE문에 날짜 함수들을 많이 이용하다 보니,
차이점을 명확하게 구분하고자 블로그에 정리해 보았습니다!
앞으로도 몇 번 더 오라클 DB 쿼리에 대해서 적으려고 합니다!
설명이 어려운 부분 혹은 잘 이해가 안 가는 부분
그리고 더 궁금한 내용이 있다면
언제든지 댓글로 남겨주세요!
빠르게 궁금증을 해결해 드릴게요!
공감과 댓글은 큰 힘이 됩니다!
오늘도 블로그 방문해 주시고
포스팅 읽어주셔서 감사합니다!