sanguk.dev
작성완료
MySQL 날짜 및 시간 계산

MySQL 날짜 및 시간 계산

MySQL에서 날짜와 시간을 더하고 빼는 방법, 두 날짜 간의 일 수 및 시간 계산, 원하는 형태로 날짜를 계산하는 함수 사용법을 설명합니다. 주요 함수로는 DATE_ADD, DATE_SUB, DATEDIFF, TIMEDIFF, TIMESTAMPDIFF가 있습니다.

MySQL

날짜, 시간 더하기

문법

sql
DATE_ADD(기준DATETIME, INTERVAL 값 옵션);

예제

sql
SELECT DATE_ADD('2023-01-01 01:00:00', INTERVAL 1 SECOND); # 2023-01-01 01:00:01
SELECT DATE_ADD('2023-01-01 01:00:00', INTERVAL 1 MINUTE); # 2023-01-01 01:01:00
SELECT DATE_ADD('2023-01-01 01:00:00', INTERVAL 1 HOUR); # 2023-01-01 02:00:00
SELECT DATE_ADD('2023-01-01 01:00:00', INTERVAL 1 DAY); # 2023-01-02 01:00:00
SELECT DATE_ADD('2023-01-01 01:00:00', INTERVAL 1 MONTH); # 2023-02-01 01:00:00
SELECT DATE_ADD('2023-01-01 01:00:00', INTERVAL 1 YEAR); # 2024-01-01 01:00:00
SELECT DATE_ADD('2023-01-01 01:00:00', INTERVAL -1 YEAR); # 2022-01-01 01:00:00

날짜, 시간 빼기

문법

sql
DATE_SUB(기준DATETIME, INTERVAL 값 옵션);

예제

sql
SELECT DATE_SUB('2023-01-01 01:00:00', INTERVAL 1 SECOND); # 2023-01-01 00:59:59
SELECT DATE_SUB('2023-01-01 01:00:00', INTERVAL 1 MINUTE); # 2023-01-01 00:59:00
SELECT DATE_SUB('2023-01-01 01:00:00', INTERVAL 1 HOUR); # 2023-01-01 00:00:00
SELECT DATE_SUB('2023-01-01 01:00:00', INTERVAL 1 DAY); # 2022-12-31 01:00:00
SELECT DATE_SUB('2023-01-01 01:00:00', INTERVAL 1 MONTH); # 2022-12-01 01:00:00
SELECT DATE_SUB('2023-01-01 01:00:00', INTERVAL 1 YEAR); # 2022-01-01 01:00:00

두 날짜의 일 수 계산

  • 날짜 포맷에 시간이 포함되어 있는 경우, 시간은 계산에 포함하지 않는다.
  • 날짜 범위에서 벗어나는 값을 입력하는 경우 NULL을 반환한다.

문법

sql
DATEDIFF(종료일, 시작일);

예제

sql
SELECT DATEDIFF('2023-01-10', '2023-01-01'); # 9

두 날짜의 시간 계산

  • 날짜 범위에서 벗어나는 값을 입력하는 경우 NULL을 반환한다.

문법

sql
TIMEDIFF(종료일시, 시작일시);

예제

sql
SELECT TIMEDIFF('2023-01-01 15:00:00', '2023-01-01 01:00:00'); # 14:00:00

두 날짜의 계산 (원하는 형태로 계산 가능)

  • 시간, 개월 수 등 여러 가지 형태의 계산을 할 수 있는 함수
  • 타입 형식은 (SECOND, MINUTE, HOUR, DAY, MONTH, YEAR)

문법

sql
TIMESTAMPDIFF(타입, 시작일시, 종료일시);

예제

sql
SELECT TIMESTAMPDIFF(MINUTE, '2023-01-01 01:00:00', '2023-01-01 15:00:00'); # 840