🖥️ IT, 컴퓨터/🏁 SQL・빅쿼리

[SQL] DATEDIFF란?

김 홍시 2024. 11. 24.
반응형

DATEDIFF란?

DATEDIFF는 SQL에서 두 날짜 간의 차이(일수)를 계산하는 함수입니다. 주로 특정 기간 동안의 차이를 구하거나, 두 이벤트 간의 간격을 분석할 때 사용됩니다.


DATEDIFF의 기본 구조

DATEDIFF(단위, 시작_날짜, 종료_날짜)

주요 매개변수:

  1. 단위: 두 날짜 간의 차이를 계산할 기준(일수, 월수, 연수 등).
    • MySQL: 단위 없이 기본적으로 일수 차이를 반환.
    • SQL Server: 단위를 지정하여 연도, 월, 일 등 다양한 단위의 차이를 계산.
  2. 시작_날짜: 차이를 계산할 기준이 되는 시작 날짜.
  3. 종료_날짜: 차이를 계산할 기준이 되는 종료 날짜.

반환 값:

  • 날짜 간의 차이를 정수 값으로 반환.

MySQL에서 DATEDIFF

MySQL에서 DATEDIFF는 항상 일 단위 차이를 반환하며, 시간은 무시됩니다.

기본 구조

DATEDIFF(종료_날짜, 시작_날짜)

예제:

SELECT DATEDIFF('2024-12-01', '2024-11-24') AS 차이;
차이
7
  • '2024-12-01'에서 '2024-11-24'을 뺀 결과로 7일 차이를 반환.

SQL Server에서 DATEDIFF

SQL Server에서는 단위를 지정하여 다양한 시간 단위의 차이를 계산할 수 있습니다.

기본 구조

DATEDIFF(단위, 시작_날짜, 종료_날짜)

단위 종류:

단위 설명
year 연도 차이
month 월 차이
day 일수 차이
hour 시간 차이
minute 분 차이
second 초 차이
week 주 단위 차이
quarter 분기 차이

예제 1: 일 단위 차이

SELECT DATEDIFF(day, '2024-11-24', '2024-12-01') AS 일_차이;
일_차이
7

예제 2: 월 단위 차이

SELECT DATEDIFF(month, '2024-01-01', '2024-12-01') AS 월_차이;
월_차이
11

예제 3: 연 단위 차이

SELECT DATEDIFF(year, '2020-01-01', '2024-01-01') AS 연_차이;
연_차이
4

예제 4: 시간 단위 차이

SELECT DATEDIFF(hour, '2024-11-24 10:00:00', '2024-11-24 15:00:00') AS 시간_차이;
시간_차이
5

DATEDIFF의 활용 사례

1. 특정 기간 내 데이터 필터링

예제: 30일 이전에 발생한 주문 데이터 조회.

SELECT *
FROM 주문
WHERE DATEDIFF(CURDATE(), 주문일) <= 30;

2. 만료일 계산

예제: 오늘 기준으로 만료일이 7일 이내인 데이터 조회.

SELECT *
FROM 제품
WHERE DATEDIFF(만료일, CURDATE()) <= 7;

3. 고객 가입 주기 분석

예제: 가입일 기준 1년 이상 된 고객 조회.

SELECT 고객ID, 가입일
FROM 고객
WHERE DATEDIFF(CURDATE(), 가입일) >= 365;

DATEDIFF 주의사항

  1. 날짜 순서:
    • DATEDIFF(종료_날짜, 시작_날짜)의 순서를 반대로 쓰면 부호가 바뀝니다.
      • 예: DATEDIFF('2024-11-24', '2024-12-01')-7
  2. 시간 무시:
    • MySQL의 경우, 시간(HH:MM:SS)은 무시되고 날짜만 비교됩니다.
    • SQL Server에서는 시간 단위도 계산 가능.
  3. 날짜 형식:
    • 날짜 형식은 데이터베이스의 설정에 맞춰야 합니다. 일반적으로 YYYY-MM-DD 형식을 사용.

DATEDIFF와 TIMESTAMPDIFF의 차이 (MySQL)

MySQL에서 TIMESTAMPDIFF단위 지정이 가능하며, 보다 세부적인 시간 차이를 계산할 수 있습니다.

TIMESTAMPDIFF 예제:

SELECT TIMESTAMPDIFF(hour, '2024-11-24 10:00:00', '2024-11-24 15:00:00') AS 시간_차이;
시간_차이
5

요약

  • DATEDIFF는 두 날짜 간의 차이를 계산하는 함수.
  • MySQL: 일 단위 차이만 계산.
  • SQL Server: 다양한 단위(연도, 월, 일 등)로 차이를 계산 가능.
  • 활용:
    • 기간 분석.
    • 특정 조건에 따른 데이터 필터링.
    • 이벤트 간 간격 계산.

DATEDIFF는 간단하지만 강력한 시간 분석 도구로, 다양한 비즈니스 로직 구현에 유용합니다! 😊

반응형

'🖥️ IT, 컴퓨터 > 🏁 SQL・빅쿼리' 카테고리의 다른 글

[SQL] EXTRACT 란?  (0) 2024.11.24
[SQL] CURDATE() 함수란?  (0) 2024.11.24
[SQL] DATE_TRUNC이란?  (0) 2024.11.24
[SQL] CTE(Common Table Expressions)란?  (0) 2024.11.24
[SQL] LEAD 함수란?  (0) 2024.11.24

댓글