날짜/시간 계산 함수
DATE_ADD()
DATE_ADD(기준날짜, INTERVAL)
SELECT DATE_ADD(NOW(), INTERVAL 1 SECOND)
SELECT DATE_ADD(NOW(), INTERVAL 1 MINUTE)
SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR)
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY)
SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH)
SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR)
SELECT DATE_ADD(NOW(), INTERVAL -1 YEAR)
DATE_SUB()
DATE_SUB(기준날짜, INTERVAL)
SELECT DATE_SUB(NOW(), INTERVAL 1 SECOND)
DATEDIFF()
- 두 기간 사이의 일수 계산(종료일 - 시작일)
- 날짜 포맷에 시간이 포함되어 있는 경우, 시간은 계산에 포함하지 않음
- 날짜 범위에서 벗어나는 값을 입력하는 경우 NULL을 반환
DATEDIFF(종료일, 시작일)
SELECT DATEDIFF('2021-12-31','2021-01-02');
>> 345
TIMEDIFF()
- 두 기간 사이의 시간 계산(종료시간 - 시작시간)
- 시간 또는 날짜 범위에서 벗어난 값을 입력하는 경우 NULL을 반환
TIMEDIFF(종료시간, 시작시간)
SELECT TIMEDIFF('2022-02-01 23:00:00','2022-01-30 00:00:00');
>> 71:00:00
PEROID_DIFF()
- 두 기간 사이의 개월 수 차이 계산(종료년월 - 시작년월)
PERIOD_DIFF(종료년원,시작년월)
SELECT PERIOD_DIFF('202202','202112');
>> 2
SELECT PERIOD_DIFF('202202','201212');
>> -10
SELECT PERIOD_DIFF('2202','1912');
>> 26
TIMESTAMPDIFF()
- 시간, 개월 수 등 여러 가지 형태의 계산을 할 수 있는 함수
- 단위(반환 값 형식): MONTH, YEAR, HOUR ...
TIMESTAMPDIFF(단위, 시작일, 종료일)
SELECT TIMESTAMPDIFF(MONTH,'2021-02-01','2022-03-01');
>> 13
기타 관련 함수
DATE_FORMAT(date, format)
SELECT DATE_FORMAT(now(), '%Y-%m-%d');
>> 2012-03-14