본문 바로가기
SQL

오라클 SQL: 날짜 다루기 기초

by Status Code 2024. 1. 5.

오라클에서 날짜 다루기

오라클에서 날짜를 다루는 방법은 다양하며, 다음은 기본적으로 알아야 할 몇 가지 중요한 함수와 사용법입니다.

1. 날짜 생성하기

TO_DATE 함수

  • 설명: 문자열을 날짜로 변환합니다.
  • 예제: SELECT TO_DATE('2024-01-05', 'YYYY-MM-DD') FROM dual;

SYSDATE 함수

  • 설명: 현재 시스템의 날짜와 시간을 반환합니다.
  • 예제: SELECT SYSDATE FROM dual;

2. 날짜 형식 지정하기

TO_CHAR 함수

  • 설명: 날짜를 원하는 형식의 문자열로 변환합니다.
  • 예제: SELECT TO_CHAR(SYSDATE, 'YYYYMMDD HH24MISS') FROM dual;

3. 날짜 연산하기

날짜 더하기 및 빼기

  • 예제:
    • SELECT SYSDATE + 7 FROM dual; -- 7일 더하기
    • SELECT SYSDATE - 7 FROM dual; -- 7일 빼기

개월 수 더하기

  • 예제: SELECT ADD_MONTHS(SYSDATE, 2) FROM dual; -- 2개월 더하기

4. 날짜 간의 차이 계산하기

DATEDIFF 함수

  • 설명: 두 날짜 간의 차이를 일(day) 단위로 계산합니다.
  • 예제: SELECT SYSDATE - TO_DATE('2024-01-01', 'YYYY-MM-DD') FROM dual;

5. 날짜 정보 추출하기

EXTRACT 함수

  • 설명: 특정 날짜의 년도, 월, 일 등을 추출합니다.
  • 예제:
    • SELECT EXTRACT(YEAR FROM SYSDATE) FROM dual; -- 년도 추출
    • SELECT EXTRACT(MONTH FROM SYSDATE) FROM dual; -- 월 추출

6. 날짜 비교하기

날짜 비교 연산자

  • 예제:
    • SELECT * FROM your_table WHERE your_date = TO_DATE('2024-01-05', 'YYYY-MM-DD');
    • SELECT * FROM your_table WHERE your_date > SYSDATE - 7;

7. 주와 요일 다루기

주의 시작일과 종료일 구하기

  • 예제:
    • SELECT TRUNC(SYSDATE, 'IW') AS start_of_week,
    • TRUNC(SYSDATE, 'IW') + 6 AS end_of_week FROM dual;

현재 요일 구하기

  • 예제:
    • SELECT TO_CHAR(SYSDATE, 'D') FROM dual;
    • SELECT TO_CHAR(SYSDATE, 'DAY') FROM dual;

8. 분기와 반기 정보 추출하기

현재 분기 구하기

  • 예제: SELECT CEIL(EXTRACT(MONTH FROM SYSDATE) / 3) AS current_quarter FROM dual;

현재 반기 구하기

  • 예제: SELECT CEIL(EXTRACT(MONTH FROM SYSDATE) / 6) AS current_semester FROM dual;

9. 날짜 형식의 변환과 해석

날짜 형식 모델

  • 예제:
    • SELECT TO_CHAR(SYSDATE, 'YYYYMMDD HH24MISS') AS formatted_date FROM dual;
    • SELECT TO_CHAR(SYSDATE, 'FMDay, FMDDth of FMMonth, YYYY') AS fancy_date FROM dual;

10. 시간대 다루기

시간대 변환

  • 예제: SELECT FROM_TZ(CAST(SYSDATE AS TIMESTAMP), 'UTC') AT TIME ZONE 'Asia/Seoul' AS seoul_time FROM dual;

11. 날짜 관련 기타 함수

LAST_DAY 함수

  • 예제: SELECT LAST_DAY(SYSDATE) FROM dual;

MONTHS_BETWEEN 함수

  • 예제: SELECT MONTHS_BETWEEN('2024-07-05', '2024-01-05') FROM dual;

이 외에도 오라클에서는 많은 날짜 관련 기능을 제공하므로, 실제 개발 상황에 맞게 적절한 함수를 선택하여 사용하면 좋습니다.

댓글