[MySQL] 시간 사이의 간격 계산

Dada·2025년 1월 13일

TIMESTAMPDIFF

TIMESTAMPDIFF(unit, datetime1, datetime2)
  • TIMESTAMPDIFF : 두 날짜 또는 시간 간의 특정 단위로 간격 반환
    • unit : 반환할 간격의 단위 지정 (예: SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR)
    • datetime1 : 시작 시간
    • datetime2 : 끝 시간
    • 결과 : datetime2 - datetime1에 해당하는 간격
  • 예시
-- 두 시간 사이의 간격을 분 단위로 계산
SELECT TIMESTAMPDIFF(MINUTE, '2025-01-01 12:00:00', '2025-01-01 13:30:00');
-- 결과 : 90

-- 두 날짜 사이의 간격을 일 단위로 계산
SELECT TIMESTAMPDIFF(DAY, '2025-01-01', '2025-01-10');
-- 결과: 9

TIMEDIFF

TIMEDIFF(time1, time2)
  • TIMEDIFF(time1, time2) : 두 시간의 차이를 HH:MM:SS 형식으로 반환
    • time1, time2: 비교할 두 시간 값 (DATETIME 또는 TIME 형식 가능)
    • 결과: time2-time1에 해당하는 차이를 HH:MM:SS 형식으로 반환
-- 두 시간의 차이 계산
SELECT TIMEDIFF('13:30:00', '12:00:00');
-- 결과 : '01:30:00'

-- 두 DATETIME의 시간 차이 계산
SELECT TIMEDIFF('2025-01-01 13:30:00', '2025-01-01 12:00:00');
-- 결과: '01:30:00'

UNIX_TIMESTAMP를 활용한 직접 계산

-- 두 시간 간의 차이를 초 단위로 계산
SELECT UNIX_TIMESTAMP('2025-01-01 13:30:00') - UNIX_TIMESTAMP('2025-01-01 12:00:00') AS seconds_diff;
-- 결과: 5400 (1시간 30= 5400)

-- 초 단위 차이를 분 단위로 변환
SELECT (UNIX_TIMESTAMP('2025-01-01 13:30:00') - UNIX_TIMESTAMP('2025-01-01 12:00:00')) / 60 AS minutes_diff;
-- 결과: 90
  • 직접 계산 : 시간 간격을 초, 분, 시간 등으로 계산하려면 UNIX_TIMESTAMP와 산술 연산 사용

▶ 단위 요약

단위 이름 (unit)설명
SECOND
MINUTE
HOUR시간
DAY
WEEK
MONTH
YEAR

0개의 댓글