본문 바로가기

SQL/예제로 익히는 SQL 함수

[MySQL] DATEDIFF, TIMESTAMPDIFF, INTERVAL

과제를 하면서 가장 헷갈렸던 부분이 바로 이 날짜 관련 함수이다. 

나는 거의 대부분 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