MariaDB 날짜 및 시간 데이터 형식 변환 방법

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 예제 실행 화면

MariaDB 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 예제 실행 화면

MariaDB STR_TO_DATE 함수 예제 실행 화면

3) 포맷 토큰 요약

토큰의미예시
%Y4자리 연도2025
%y2자리 연도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,...)처럼 컬럼에 함수 적용 시 인덱스가 무력화될 수 있음. 가능하면 리터럴을 변환하거나 파생 컬럼을 사용.

참고할 만한 사이트

더 자세한 내용은 다음 사이트들을 참고하세요.

관련 이전 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤