MySQL에서 시간과 날짜를 처리하는 데 다양한 함수들이 제공됩니다. 이 글에서는 이러한 시간 함수들을 자세히 살펴보고, 각 함수의 사용 방법과 예제를 통해 이해를 도와드리겠습니다.
현재 시간과 날짜 반환 함수
NOW(), CURRENT_TIMESTAMP(), SYSDATE()
이 함수들은 현재 날짜와 시간을 반환합니다.
SELECT NOW(), CURRENT_TIMESTAMP(), SYSDATE();
- NOW(): 현재 날짜와 시간을 'yyyy-mm-dd hh:mm:ss' 또는 yyyymmddhhmmss 형식으로 반환합니다.
- CURRENT_TIMESTAMP(): NOW()와 동일한 기능을 합니다.
- SYSDATE(): NOW()와 비슷하지만, 함수가 실행되는 시점의 시각을 반환합니다. 즉, 동일한 쿼리 내에서 여러 번 호출될 때마다 다른 값을 반환할 수 있습니다.
CURDATE(), CURRENT_DATE()
이 함수들은 현재 날짜만 반환합니다.
- CURTIME(): 현재 시간을 'hh:mm:ss' 또는 hhmmss 형식으로 반환합니다.
날짜와 시간의 특정 부분 추출 함수
YEAR(), MONTH(), DAY()
이 함수들은 날짜에서 특정 부분을 추출합니다.
SELECT YEAR('2023-03-08'), MONTH('2023-03-08'), DAY('2023-03-08');
HOUR(), MINUTE(), SECOND()
이 함수들은 시간에서 특정 부분을 추출합니다.
SELECT HOUR('10:05:03'), MINUTE('10:05:03'), SECOND('10:05:03');
- HOUR(time): 시간의 시를 반환합니다.
- MINUTE(time): 시간의 분을 반환합니다.
- SECOND(time): 시간의 초를 반환합니다.
날짜와 시간 연산 함수
DATE_ADD(), ADDDATE()
이 함수들은 날짜나 시간에 특정 기간을 더합니다.
SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR);
SELECT ADDDATE(NOW(), INTERVAL 1 YEAR);
- DATE_ADD(date, INTERVAL value unit): 날짜나 시간에 지정된 기간을 더합니다. 예: INTERVAL 1 YEAR, INTERVAL 1 MONTH, INTERVAL 1 DAY 등
DATE_SUB(), SUBDATE()
이 함수들은 날짜나 시간에서 특정 기간을 뺍니다.
SELECT DATE_SUB(NOW(), INTERVAL 1 YEAR);
SELECT SUBDATE(NOW(), INTERVAL 1 YEAR);
- DATE_SUB(date, INTERVAL value unit): 날짜나 시간에서 지정된 기간을 뺍니다. 예: INTERVAL 1 YEAR, INTERVAL 1 MONTH, INTERVAL 1 DAY 등
날짜와 시간 차이 계산 함수
DATEDIFF()
이 함수는 두 날짜 사이의 일 수 차이를 계산합니다
SELECT DATEDIFF(NOW(), '2023-01-01');
- TIMEDIFF(time1, time2): 두 시간 또는 날짜/시간 값 사이의 차이를 반환합니다.
TIMESTAMPDIFF()
이 함수는 두 시점 사이의 시간 차이를 지정된 단위로 계산합니다.
SELECT TIMESTAMPDIFF(YEAR, '2023-01-01', NOW());
SELECT TIMESTAMPDIFF(MONTH, '2023-01-01', NOW());
SELECT TIMESTAMPDIFF(DAY, '2023-01-01', NOW());
- TIMESTAMPDIFF(unit, start_date, end_date): 두 시점 사이의 시간 차이를 지정된 단위로 반환합니다. 예: YEAR, MONTH, DAY 등
DATE_FORMAT()
이 함수는 날짜와 시간을 지정한 형식으로 반환합니다.
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
- DATE_FORMAT(date, format): 날짜와 시간을 지정한 형식으로 반환합니다. 예: '%Y-%m-%d %H:%i:%s' 등
TIME_FORMAT()
이 함수는 시간을 지정한 형식으로 반환합니다.
SELECT TIME_FORMAT('10:05:03', '%H:%i:%s');
- TIME_FORMAT(time, format): 시간을 지정한 형식으로 반환합니다. 예: '%H:%i:%s' 등
날짜의 마지막 날짜 반환 함수
LAST_DAY()
이 함수는 입력된 날짜의 월의 마지막 날짜를 반환합니다.
SELECT LAST_DAY('2023-03-08');
- LAST_DAY(date): 입력된 날짜의 월의 마지막 날짜를 반환합니다.
요약
MySQL의 시간 함수들은 다양한 상황에서 유용하게 사용될 수 있습니다. 위에서 설명한 함수들을 통해 날짜와 시간을 효율적으로 처리하고, 필요한 형식으로 변환할 수 있습니다.
- 현재 날짜와 시간 반환: NOW(), CURDATE(), CURTIME()
- 특정 부분 추출: YEAR(), MONTH(), DAY(), HOUR(), MINUTE(), SECOND()
- 날짜와 시간 연산: DATE_ADD(), DATE_SUB(), DATEDIFF(), TIMEDIFF(), TIMESTAMPDIFF()
- 형식 설정: DATE_FORMAT(), TIME_FORMAT()
- 월의 마지막 날짜: LAST_DAY()
이 함수들을 적절하게 사용하면, MySQL에서 날짜와 시간 관련 작업을 쉽고 효율적으로 수행할 수 있습니다.
'MySQL' 카테고리의 다른 글
| MySQL에서 테이블 Join하기 (1) | 2024.12.02 |
|---|---|
| MySQL의 테이블에서 시간 입력 활용하기 (1) | 2024.12.02 |
| MySQL에서 IF와 CASE 활용하기 (1) | 2024.11.29 |
| MySQL에서 서브쿼리(SubQuery) 활용하기 (3) | 2024.11.29 |
| MySQL에서 SUM 함수 활용하기 (0) | 2024.11.28 |