이 함수들은 DATETIME, TIMESTAMP, DATE, TIME 등의 자료형을 다룰 때 유용합니다.
DATEDIFF(date1, date2)
: 두 날짜 사이의 차이를 일(day) 단위로 반환합니다.
SELECT DATEDIFF('2024-10-10', '2024-10-01'); -- 결과: 9
TIMESTAMPDIFF(unit, datetime1, datetime2)
: 두 날짜/시간 사이의 차이를 지정된 단위(초, 분, 시간, 일 등)로 반환합니다.
SELECT TIMESTAMPDIFF(HOUR, '2024-10-01 12:00:00', '2024-10-02 15:00:00'); -- 결과: 27
HOUR(time)
: 시간에서 시(hour) 값을 추출합니다.
SELECT HOUR('12:30:00'); -- 결과: 12
MINUTE(time)
: 시간에서 분(minute) 값을 추출합니다.
SELECT MINUTE('12:30:00'); -- 결과: 30
SECOND(time)
: 시간에서 초(second) 값을 추출합니다.
SELECT SECOND('12:30:45'); -- 결과: 45
DATE(datetime)
: DATETIME 또는 TIMESTAMP 자료형에서 날짜(연도, 월, 일)를 추출합니다.
SELECT DATE('2024-10-10 12:30:45'); -- 결과: 2024-10-10
YEAR(datetime)
: 연도를 추출합니다.
SELECT YEAR('2024-10-10'); -- 결과: 2024
MONTH(datetime)
: 월을 추출합니다.
SELECT MONTH('2024-10-10'); -- 결과: 10
DAY(datetime)
: 일을 추출합니다.
SELECT DAY('2024-10-10'); -- 결과: 10
DAYOFWEEK(datetime)
: 요일을 추출합니다. 일요일은 1, 토요일은 7로 반환합니다.
SELECT DAYOFWEEK('2024-10-10'); -- 결과: 5 (목요일)
DATE_ADD(date, INTERVAL value unit)
: 날짜에 특정 시간 간격을 더합니다.
SELECT DATE_ADD('2024-10-10', INTERVAL 5 DAY); -- 결과: 2024-10-15
DATE_SUB(date, INTERVAL value unit)
: 날짜에서 특정 시간 간격을 뺍니다.
SELECT DATE_SUB('2024-10-10', INTERVAL 5 DAY); -- 결과: 2024-10-05
ADDTIME(time, expr)
: 시간을 더합니다.
SELECT ADDTIME('12:00:00', '01:30:00'); -- 결과: 13:30:00
SUBTIME(time, expr)
: 시간을 뺍니다.
SELECT SUBTIME('12:00:00', '01:30:00'); -- 결과: 10:30:00
NOW()
: 현재 날짜와 시간을 반환합니다.
SELECT NOW(); -- 결과: 2024-10-10 12:30:45 (현재 시간)
CURDATE()
: 현재 날짜를 반환합니다.
SELECT CURDATE(); -- 결과: 2024-10-10
CURTIME()
: 현재 시간을 반환합니다.
SELECT CURTIME(); -- 결과: 12:30:45
UTC_TIMESTAMP()
: UTC 기준으로 현재 시간을 반환합니다.
SELECT UTC_TIMESTAMP(); -- 결과: 2024-10-10 03:30:45 (UTC 기준)
STR_TO_DATE(string, format)
: 문자열을 날짜로 변환합니다.
SELECT STR_TO_DATE('10-10-2024', '%d-%m-%Y'); -- 결과: 2024-10-10
DATE_FORMAT(date, format)
: 날짜를 특정 형식으로 변환합니다.
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 결과: 2024-10-10 12:30:45