작성완료

MySQL 날짜 및 시간 계산
MySQL에서 날짜와 시간을 더하고 빼는 방법, 두 날짜 간의 일 수 및 시간 계산, 원하는 형태로 날짜를 계산하는 함수 사용법을 설명합니다. 주요 함수로는 DATE_ADD, DATE_SUB, DATEDIFF, TIMEDIFF, TIMESTAMPDIFF가 있습니다.
날짜, 시간 더하기
문법
DATE_ADD(기준DATETIME, INTERVAL 값 옵션);
예제
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
날짜, 시간 빼기
문법
DATE_SUB(기준DATETIME, INTERVAL 값 옵션);
예제
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을 반환한다.
문법
DATEDIFF(종료일, 시작일);
예제
SELECT DATEDIFF('2023-01-10', '2023-01-01'); # 9
두 날짜의 시간 계산
- 날짜 범위에서 벗어나는 값을 입력하는 경우
NULL을 반환한다.
문법
TIMEDIFF(종료일시, 시작일시);
예제
SELECT TIMEDIFF('2023-01-01 15:00:00', '2023-01-01 01:00:00'); # 14:00:00
두 날짜의 계산 (원하는 형태로 계산 가능)
- 시간, 개월 수 등 여러 가지 형태의 계산을 할 수 있는 함수
- 타입 형식은 (
SECOND,MINUTE,HOUR,DAY,MONTH,YEAR)
문법
TIMESTAMPDIFF(타입, 시작일시, 종료일시);
예제
SELECT TIMESTAMPDIFF(MINUTE, '2023-01-01 01:00:00', '2023-01-01 15:00:00'); # 840