[MySQL] 날짜 차이 계산법

kingkang·2025년 7월 9일

안녕하세용? 으쓱으쓱~

오늘은 "[프로그래머스] 오랜 기간 보호한 동물(2)" 이 문제를 풀고 배운 MySQL 함수를 소개드리겠습니다!


날짜 차이를 구하는 문제였는데, 일단 제 답안은

SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS I
JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID
ORDER BY O.DATETIME - I.DATETIME DESC
LIMIT 2;

이렇게 했는데 흠🤔 다른 함수는 뭐가 있을까..? 찾아보았습니다.

1. DATETIME - DATETIME

📌 날짜와 시간을 포함한 차이(초 단위) 계산

  • 제 답안에 있는 것처럼 따로 함수를 쓰지 않고 바로 DATETIME끼리 차이를 구할 수 있습니다.

2. DATEDIFF(date1, date2)

📌 두 날짜 간의 '일(day)' 차이 계산

  • 시, 분, 초는 무시되고 단순히 며칠 차이인지 구할 때 사용할 수 있습니다.

  • 계산 순서: date1 - date2

SELECT DATEDIFF('2025-07-19 00:00:00', '2025-07-09 10:00:00');
-- 결과: 10

3. TIMESTAMPDIFF(unit, date1, date2)

📌 단위를 지정해 초, 분, 시, 일 단위까지 정밀하게 계산

  • 계산 순서: date2 - date1 (계산 순서에 유의)

  • 단위 종류는 아래와 같습니다!

    • SECOND : 초 차이
    • MINUTE : 분 차이
    • HOUR : 시간 차이
    • DAY : 일 차이
    • WEEK : 주 차이
    • MONTH : 월 차이
    • QUARTER : 분기 차이 (3개월 단위)
    • YEAR : 연도 차이
  • 또한, 단위 기준으로 남는 건 버림 처리됩니다.

SELECT TIMESTAMPDIFF(HOUR, '2025-07-09 10:00:00', '2025-07-09 15:59:59');
-- 결과: 5 (59분 59초는 버림)
profile
꿈을 꾸물꾸물 꾸지 말자!

0개의 댓글