[MySQL] DATETIME 날짜 형식 변환

niz w·2024년 11월 21일

SQL

목록 보기
7/17
post-thumbnail

일반적으로 날짜에 대해 DATETIME으로 저장을 하고,
작동하는 시간 기점으로 저장하기 위해 default 값으로 CURRENT_TIMESTAMP를 설정할 것이다.

DATETIME : YYYY-MM-DD hh:mm:ss
DATE : YYYY-MM-DD

판매 시간을 보여준다거나 게시글의 상세 시간이 아니고는 굳이 시간까지 노출시키지 않아도 되는 경우가 많다!

이럴 때는 DATE 형식으로 설정해주면 되지만,
만약 관리자 페이지의 경우 상세히 하고 싶어서 DATE_FORMAT으로 시간까지 추가할 경우...
기존 데이터에 시간은 없었기에 0으로만 채워지게 된다!😭😂

따라서, DATETIME을 사용하되 필요에 따라 형태를 변환할 수 있는 DATE_FORMAT에 대해 정리하려고 한다🤔




🎈 Format

  • %M : Month 월(January, February ...)
  • %m : Month 월(01, 02, 03 ...)
  • %W : Day of Week 요일(Sunday, Monday ...)
  • %D : Day of Month 일(1st, 2dn, 3rd ...)
  • %Y : Year 연도(1999, 2000, 2020)
  • %y : Year 연도(99, 00, 20)
  • %X : 주간 기준의 연도, 네 자릿수(예: 1999, 2000, 2020), %V와 같이 사용, 주 시작일은 일요일
  • %x : 주간 기준의 연도, 네 자릿수(예: 1999, 2000, 2020), %V와 같이 사용, 주 시작일은 월요일
  • %a : Day of Week요일(Sun, Mon, Tue ...)
  • %d : Day 일(00, 01, 02 ...)
  • %e : Day 일(0, 1, 2 ..)
  • %c : Month(1, 2, 3 ..)
  • %b : Abbreviated Month 축약된 월 이름(Jan, Feb, ...)
  • %j : Year day 연도 기준 몇 번째 날(001 ~ 366)
  • %H : Hour 시(00, 01, 24) 24시간 형태
  • %h : Hour 시(01, 02, 12) 12시간 형태
  • %I : Hour 시(01, 02 12) 12시간 형태
  • %l (소문자 엘) : Hour 시(1, 2, 12) 12 시간 형태
  • %i : Minute 분(00, 01 59)
  • %r : Time 12시간 형식(hh:mm:ss AM/PM)
  • %T : Time 24시간 형식(hh:mm:ss)
  • %S, %s : Second 초
  • %p : AP, PM
  • %w : Day of Week 요일 (0 ~ 6, 0은 일요일)
  • %U : Week 주(시작: 일요일)
  • %u : Week 주(시작: 월요일)
  • %V : ISO 주 번호, 주 시작은 일요일
  • %v : ISO 주 번호, 주 시작은 월요일



🎈 사용 예시

		SELECT date_format(now(), "%Y-%m-%d") FROM dual;


SELECT
  target_date,
  DATE_FORMAT(target_date, '%x') AS iso_week_year_monday_start,  
  DATE_FORMAT(target_date, '%X') AS week_year_sunday_start,  
  DATE_FORMAT(sample_date, '%v') AS iso_week_monday_start,
  DATE_FORMAT(sample_date, '%V') AS week_sunday_start
FROM dual;

0개의 댓글