
| 함수 | 언제 쓰냐 |
|---|---|
DATEDIFF(A, B) | 첫 구매까지 며칠? |
TIMESTAMPDIFF(MONTH, A, B) | 코호트 몇 개월 차? |
DATE_SUB(날짜, INTERVAL rn DAY) | 연속 날짜 그룹핑 |
1. DATEDIFF(A, B) = A - B (일수) 2. TIMESTAMPDIFF(단위, A, B) = B - A (순서 반대!) 3. DATE_SUB(날짜, INTERVAL n DAY) = 날짜 - n일
| 함수 | 하는 일 | 결과 타입 | 순서 |
|---|---|---|---|
DATEDIFF(A, B) | 두 날짜 차이 | 정수 (일) | A - B |
TIMESTAMPDIFF(단위, A, B) | 두 날짜 차이 | 정수 (단위별) | B - A ⚠️ |
DATE_SUB(날짜, INTERVAL n DAY) | 날짜 빼기 | 날짜 | 날짜 - n |
DATEDIFF(끝날짜, 시작날짜)
예시:
DATEDIFF('2024-03-15', '2024-03-10') → 5 (일)
DATEDIFF('2024-03-10', '2024-03-15') → -5 (일)
언제 쓰냐: 첫 구매까지 며칠 걸렸나?
DATEDIFF(first_order_date, signup_date)
TIMESTAMPDIFF(단위, 시작날짜, 끝날짜)
⚠️ DATEDIFF랑 순서 반대!
단위 옵션:
| 단위 | 의미 |
|------|------|
| YEAR | 년 |
| MONTH | 월 |
| WEEK | 주 |
| DAY | 일 |
| HOUR | 시간 |
예시:
TIMESTAMPDIFF(MONTH, '2024-01-01', '2024-03-15') → 2 (개월)
TIMESTAMPDIFF(WEEK, '2024-01-01', '2024-03-15') → 10 (주)
TIMESTAMPDIFF(DAY, '2024-01-01', '2024-03-15') → 73 (일)
언제 쓰냐: 코호트 리텐션 (몇 개월 차?)
TIMESTAMPDIFF(MONTH, signup_date, order_date) AS month_number
DATE_SUB(날짜, INTERVAL n 단위)
예시:
DATE_SUB('2024-03-15', INTERVAL 3 DAY) → '2024-03-12'
DATE_SUB('2024-03-15', INTERVAL 1 MONTH) → '2024-02-15'
언제 쓰냐: 연속 날짜 그룹핑!
DATE_SUB(login_date, INTERVAL rn DAY) AS grp
| 문제 유형 | 사용 함수 |
|---|---|
| 첫 구매까지 며칠? | DATEDIFF(구매일, 가입일) |
| 몇 개월 차에 구매? (코호트) | TIMESTAMPDIFF(MONTH, 가입일, 구매일) |
| 연속 날짜 그룹핑 | DATE_SUB(날짜, INTERVAL rn DAY) |
DATEDIFF(A, B) → A - B
TIMESTAMPDIFF(단위, A, B) → B - A ← 반대!
-- DATE_SUB = 날짜 반환
DATE_SUB('2024-03-15', INTERVAL 3 DAY) → '2024-03-12' (날짜)
-- DATEDIFF = 숫자 반환
DATEDIFF('2024-03-15', '2024-03-12') → 3 (정수)
채널톡 DA 인턴 코테 준비 중 정리한 내용입니다 🚀
