1 분 소요

MySQL은 날짜와 시간 데이터를 효율적으로 처리하기 위한 다양한 시간 함수를 제공합니다. 이 글에서는 현재 시각, 날짜 추출, 요일 및 형식화 등 자주 사용하는 날짜/시간 함수를 예제와 함께 정리했습니다.


🕒 1. 현재 날짜와 시간 확인

함수 설명 예시 결과
NOW() 현재 날짜와 시간 '2023-12-01 15:20:30'
CURDATE() 현재 날짜만 '2023-12-01'
CURTIME() 현재 시간만 '15:20:30'
SELECT NOW(), CURDATE(), CURTIME();

📆 2. 날짜·시간 정보 추출

함수 설명 예시 결과
DATE() 날짜만 추출 DATE('2023-12-01 12:00:00')'2023-12-01'
MONTH() 월 숫자 반환 (1~12) MONTH('2023-12-01')12
DAY() 일 숫자 반환 (1~31) DAY('2023-12-01')1
HOUR() 시간 (0~23) HOUR('12:34:56')12
MINUTE() 분 (0~59) MINUTE('12:34:56')34
SECOND() 초 (0~59) SECOND('12:34:56')56
SELECT DATE('2016-02-19 12:34:56'),
       MONTH('2016-02-19'),
       DAY('2016-02-19'),
       HOUR('12:34:56'),
       MINUTE('12:34:56'),
       SECOND('12:34:56');

📅 3. 월/요일 이름 반환

함수 설명 예시 결과
MONTHNAME() 월 이름 MONTHNAME('2023-12-01')'December'
DAYNAME() 요일 이름 DAYNAME('2023-12-01')'Friday'
SELECT MONTHNAME('2023-12-01'), DAYNAME('2023-12-01');

📌 4. 연도/월/주 단위 정보

함수 설명 예시 결과
DAYOFWEEK() 주의 몇 번째 날인지 (일요일=1) DAYOFWEEK('2023-12-01')6
DAYOFMONTH() 월의 며칠인지 (1~31) DAYOFMONTH('2023-12-01')1
DAYOFYEAR() 연도의 몇 번째 날인지 (1~366) DAYOFYEAR('2023-12-01')335
SELECT DAYOFMONTH('2023-12-01'),
       DAYOFWEEK('2023-12-01'),
       DAYOFYEAR('2023-12-01');

🛠 5. 날짜 형식 변경 – DATE_FORMAT()

형식 설명 예시
%a 요일 축약형 Mon
%b 월 축약형 Dec
%d 날짜 (2자리) 01
%H 시간 (24시) 15
%M 월 이름 December
%p AM/PM 표기 AM
%Y 4자리 연도 2023

예제: 날짜를 형식화

SELECT DATE_FORMAT('2017-02-19 12:34:56', '%D %y %a %d %m %b %j');
-- 결과: '19th 17 Sun 19 02 Feb 050'

또는 단순 형식으로:

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');

📋 요약 테이블

함수 설명 결과 예시
NOW() 현재 날짜와 시간 '2023-12-01 15:20:30'
CURDATE() 현재 날짜 '2023-12-01'
CURTIME() 현재 시간 '15:20:30'
DATE(expr) 날짜만 추출 '2023-12-01'
MONTH(expr) 월 숫자 반환 12
DAY(expr) 일 숫자 반환 1
MONTHNAME() 월 이름 'December'
DAYNAME() 요일 이름 'Friday'
DAYOFYEAR() 연도의 몇 번째 날인지 335
DATE_FORMAT() 날짜 형식 변환 '2023-12-01' → '2023-12-01'

질문 정리

Q1. 오늘 날짜 기준으로 7일 전 날짜를 구하려면?

SELECT CURDATE() - INTERVAL 7 DAY;

Q2. 현재 시각에서 3시간 더한 시간은?

SELECT NOW() + INTERVAL 3 HOUR;

Q3. 요일 숫자가 필요해요. 월요일이 1이 되게 하려면?

SELECT WEEKDAY('2023-12-01'); -- 결과: 4 (월요일이 0부터 시작)

카테고리:

업데이트:

댓글남기기