MariaDB 날짜·시간 변환: DATE_FORMAT / STR_TO_DATE 한 번에 정리
리포트용 표시 형식, 외부 입력 파싱, API 출력 표준화를 위해 MariaDB에서는 DATE_FORMAT(출력 포맷팅)과 STR_TO_DATE(문자열→날짜 파싱)을 사용합니다. 두 함수의 쓰임과 자주 쓰는 포맷을 예제와 함께 정리합니다.
1) DATE_FORMAT: 날짜/시간을 원하는 문자열로 출력
문법: DATE_FORMAT(date, format)
date: DATETIME/DATE/TIMESTAMP 값format: 포맷 문자열(아래 토큰 표 참고)
자주 쓰는 예제
-- 오늘 날짜를 'YYYY-MM-DD'
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS ymd;
-- 요일·월명 포함한 긴 형식
SELECT DATE_FORMAT(NOW(), '%W, %M %d, %Y') AS long_fmt;
-- 시간만 24시각 + 초
SELECT DATE_FORMAT(NOW(), '%H:%i:%s') AS hms;
-- 한국형 'YYYY.MM.DD HH:MM'
SELECT DATE_FORMAT(NOW(), '%Y.%m.%d %H:%i') AS kr_fmt;▼ DATE_FORMAT 예제 실행 화면

2) STR_TO_DATE: 문자열을 날짜/시간으로 파싱
문법: STR_TO_DATE(string, format)
string: 입력 문자열format: 입력 문자열의 형식(출력 형식이 아님)
자주 쓰는 예제
-- '2024-05-15' → DATE
SELECT STR_TO_DATE('2024-05-15', '%Y-%m-%d') AS d;
-- '15/05/2024' → DATE → 다시 원하는 포맷으로 표시
SELECT DATE_FORMAT(STR_TO_DATE('15/05/2024', '%d/%m/%Y'), '%d/%m/%Y') AS ddmmyyyy;
-- '2024-05-15 14:23:10' → DATETIME
SELECT STR_TO_DATE('2024-05-15 14:23:10', '%Y-%m-%d %H:%i:%s') AS dt;▼ STR_TO_DATE 예제 실행 화면

3) 포맷 토큰 요약
| 토큰 | 의미 | 예시 |
|---|---|---|
%Y | 4자리 연도 | 2025 |
%y | 2자리 연도 | 25 |
%m | 월(01–12) | 10 |
%c | 월(1–12, 0채움 없음) | 10 |
%d | 일(01–31) | 09 |
%e | 일(1–31) | 9 |
%H | 시(00–23) | 17 |
%h/%I | 시(01–12) | 05 |
%i | 분(00–59) | 07 |
%s | 초(00–59) | 42 |
%W/%a | 요일(전체/약어) | Wednesday / Wed |
%M/%b | 월명(전체/약어) | October / Oct |
4) 실무 패턴
-- 한국형 표시: 'YYYY.MM.DD HH:MM'
SELECT DATE_FORMAT(dt_col, '%Y.%m.%d %H:%i') FROM t;
-- 텍스트 컬럼을 안전하게 DATE로 변환(실패 시 NULL)
SELECT STR_TO_DATE(txt_col, '%Y-%m-%d') AS d FROM t;
-- 범위 조회(문자열을 날짜로 파싱 후 비교)
SELECT * FROM t
WHERE dt_col BETWEEN STR_TO_DATE('2025-10-01','%Y-%m-%d')
AND STR_TO_DATE('2025-10-31','%Y-%m-%d');5) 자주 겪는 오류와 팁
- 포맷 불일치: 입력 문자열과
STR_TO_DATE의 포맷이 다르면NULL반환. - 0패딩: 월/일이 한 자리인 입력은
%m/%d대신%c/%e로 파싱. - 타임존: 서버/클라이언트 TZ가 다르면 표시값이 달라질 수 있음. 앱층에서 TZ를 고정하거나 UTC로 저장 후 표시 시 변환.
- 인덱스: WHERE에서
DATE_FORMAT(col,...)처럼 컬럼에 함수 적용 시 인덱스가 무력화될 수 있음. 가능하면 리터럴을 변환하거나 파생 컬럼을 사용.
참고할 만한 사이트
더 자세한 내용은 다음 사이트들을 참고하세요.
관련 이전 게시글
- MariaDB 데이터 형식 변환: CAST 및 CONVERT 함수
- MariaDB 데이터베이스 생성 및 삭제 방법
- MariaDB 데이터베이스 백업 및 복구 방법
- MariaDB SELECT 문 사용법 및 DISTINCT 중복 제거
- MariaDB 주요 특징 및 사용하는 이유
이 글이 도움이 되셨다면 공유 부탁 드립니다.


![[SSMS] 로컬 서버(PC)에 설치한 MSSQL 서버 연결하는 방법](https://bluesharehub.com/wp-content/uploads/2022/02/img_41.png)
