PostgreSQL 날짜 계산 가이드: 함수 및 응용

PostgreSQL은 강력한 데이터베이스 관리 시스템으로서 다양한 날짜 계산 기능을 제공합니다. 이 블로그 글에서는 날짜 계산에 필요한 기본 함수부터 실생활에서 활용 가능한 흥미로운 예시까지, PostgreSQL 날짜 계산의 매력을 탐구해 보겠습니다.

날짜 관련 기본 함수

PostgreSQL에는 날짜와 시간을 다루는 다양한 함수가 존재합니다. 먼저, 날짜 계산의 기본이 되는 핵심 함수들을 살펴보겠습니다.

1) 현재 날짜 및 시간:

  • CURRENT_DATE: 현재 날짜를 반환합니다.
  • CURRENT_TIME: 현재 시간을 반환합니다.
  • CURRENT_TIMESTAMP: 현재 날짜와 시간을 포함하는 타임스탬프를 반환합니다.

2) 날짜 요소 추출:

  • EXTRACT: 날짜 또는 타임스탬프에서 특정 요소(년, 월, 일, 시간, 분, 초 등)를 추출합니다.
  • DATE_PART: EXTRACT와 유사하지만, 더욱 다양한 옵션을 제공합니다.

3) 날짜 계산:

  • DATE_ADD: 날짜에 특정 기간(일, 주, 월, 년 등)을 더합니다.
  • DATE_SUB: 날짜에서 특정 기간을 뺍니다.

4) 문자열 변환:

  • TO_DATE: 문자열을 날짜 형식으로 변환합니다.
  • TO_TIMESTAMP: 문자열을 타임스탬프 형식으로 변환합니다.

실생활에서 활용하는 날짜 계산

1) 특정 날짜까지 남은 일수 계산:

  • 목표 달성을 위한 동기를 유지하고 계획을 세우는 데 도움을 줍니다.
SELECT DATE_PART('day', DATE_DIFF('2024-12-31', CURRENT_DATE));

2) 특정 요일의 날짜 찾기:

  • 회의 일정, 급여 지급일, 행사 개최일 등을 미리 확인하여 준비할 수 있습니다.
SELECT DATE_ADD('2024-02-17', INTERVAL 1 DAY UNTIL DAY = 'MON');

3) 특정 기간 동안의 날짜 목록 추출:

  • 과거 데이터 분석, 예약 시스템 개발, 프로젝트 일정 관리 등에 활용 가능합니다.
SELECT generate_series('2024-01-01', '2024-03-31', INTERVAL 1 DAY);

4) 나이 계산:

  • 회원 정보 관리, 법적 제한 검사, 마케팅 타겟팅 등에 활용 가능합니다.
SELECT EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM '1990-05-24');

더 나아가: 흥미로운 날짜 계산 활용

1) 특정 요일의 빈도 계산:

  • 특정 요일에 발생하는 사건의 패턴을 분석하여 예측 모델을 구축할 수 있습니다.
SELECT COUNT(*)
FROM generate_series('2020-01-01', '2020-12-31')
WHERE EXTRACT(DOW FROM date) = 0;

2) 특정 기간 동안의 주말 날짜 수 계산:

  • 휴가 계획, 인력 배치, 프로젝트 일정 관리 등에 활용 가능합니다.
SELECT COUNT(*)
FROM generate_series('2024-07-01', '2024-08-31')
WHERE EXTRACT(DOW FROM date) IN (0, 6);