1. 날짜, 시간 계산 함수
- DATE_ADD() : 날짜, 시간 더하기
- DATE_SUB() : 날짜, 시간 빼기
- DATEDIFF() : 두 기간 사이의 일수 계산
- TIMEDIFF() : 두 기간 사이의 시간 계산
- PERIOD_DIFF() : 두 기간 사이의 개월 수 계산
- TIMESTAMPDIFF() : 두 기간 사이의 시간 계산
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()
- 두 기간 사이의 일수 계산
expr1 - expr2
( expr1 : 종료일, expr2 : 시작일 )
- 날짜 포맷에 시간이 포함되어 있는 경우, 시간은 계산에 포함하지 않는다.
- 날짜 범위에서 벗어나는 값을 입력하는 경우 NULL을 반환한다.
DATEDIFF(expr1, expr2)
SELECT DATEDIFF('2021-12-31','2021-01-02');
>> 345
TIMEDIFF()
- 두 기간 사이의 시간 계산
expr1 - expr2
( expr1 : 종료 시간, expr2 : 시작 시간 )
- 시간 또는 날짜 범위에서 벗어난 값을 입력하는 경우 NULL을 반환한다.
TIMEDIFF(expr1,expr2)
SELECT TIMEDIFF('2022-02-01 23:00:00','2022-01-30 00:00:00');
>> 71:00:00
PEROID_DIFF()
- 두 기간 사이의 개월 수 차이 계산
P1 - P2
( P1 : 종료 년월, P2 : 시작 년월 )
- P1, P2에는 YYYYMM 또는 YYMM 형식으로 값을 지정한다.
PERIOD_DIFF(P1,P2)
SELECT PERIOD_DIFF('202202','202112');
>> 2
SELECT PERIOD_DIFF('202202','201212');
>> -10
SELECT PERIOD_DIFF('2202','1912');
>> 26
TIMESTAMPDIFF()
- 시간, 개월 수 등 여러 가지 형태의 계산을 할 수 있는 함수
- unit - 반환 값 형식 (MONTH, YEAR, HOUR ...)
datetime_expr1 - 시작일
datetime_expr2 - 종료일
TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)
SELECT TIMESTAMPDIFF(MONTH,'2021-02-01','2022-03-01');
>> 13
2. 날짜 관련 함수
DATE_FORMAT(date, format)
SELECT DATE_FORMAT(now(), '%Y-%m-%d');
>> 2022-06-17