과제를 하면서 가장 헷갈렸던 부분이 바로 이 날짜 관련 함수이다.
나는 거의 대부분 DATEDIFF 함수를 사용했었는데 이번 과제에선 DATEDIFF를 사용하면 자꾸 이상한 값이 나왔다.
1. DATEDIFF와 TIMESTAMPDIFF의 차이 및 사용법
① DATEDIFF : 일(day) 단위의 차이를 구하기 위해 사용
DATEDIFF(날짜1, 날짜2)
날짜1 - 날짜2의 일수 차를 구한다.
② TIMESTAMPDIFF: 지정해준 단위 인자를 기준으로 두 날짜의 차이를 구하기 위해 사용
TIMESTAMPDIFF(단위, 날짜1, 날짜2)
날짜1 - 날짜2 = 00(단위)
<단위>
- SECOND : 초
- MINUTE : 분
- HOUR : 시간
- DAY : 일
- WEEK : 주
- MONTH : 월
- QUARTER : 분기
- YEAR : 연도
2. INTERVAL
날짜1 <= 날짜2 + INTERVAL _ HOUR / DAY / WEEK / MONTH / YEAR
예를 들어, 계정 생성 후 회원 가입 완료까지 30분 내에 진행된 조건을 걸고 싶을 땐 아래와 같이 사용 가능하다.
occ_at_complete_signup<=occ_at_create_user + INTERVAL 0.5 HOUR
혹은 특정 날짜나 시간에 원하는 만큼의 연 / 월 / 주 / 일 / 시간 / 분 / 초 등을 더하거나 빼는 것이 가능하다.
날짜 + INTERVAL 1 YEAR - INTERVAL 2 MONTH + INTERVAL 3 DAY
'SQL > 예제로 익히는 SQL 함수' 카테고리의 다른 글
[컬럼 만들기] 회원가입 각 단계 전환율 구하기 - SQL Challenge 세션 과제2 (0) | 2024.05.30 |
---|---|
[SQL] 이동평균을 통해 매출 추이 살펴보기 (1) | 2024.05.23 |
총량 + 특정 조건 동시에 집계하기 (SUM(CASE WHEN ...)) (0) | 2024.05.14 |
JOIN | ON절과 WHERE절의 차이점 (0) | 2024.05.13 |
MOD | SQL에서 나머지와 몫 (짝수, 홀수) (0) | 2024.05.08 |