[MySQL] date_format 설정 (날짜 포맷 변경)

    MySQL에서는 date_format으로 날짜값을 문자열로 변경하는 포맷을 지원해 준다. 아마 DBMS로 개발을 하는 웹개발자라면 한번씩은 꼭 써보게 되는 기능일텐데, 오늘은 date_format의 포맷 설정값들과 예시에 대해서 포스팅을 해보도록 한다.

     

    [MySQL] date_format 설정 (날짜 포맷 변경)


    포맷 설명

    포맷설정 포맷 설명
    %a 영문 약칭 요일 (Sun to Sat)
    %b 영문 약칭 월 (Jan to Dec)
    %c 숫자로 표현하는 월 (0 to 12)
    %D 숫자 값으로 표시된 일, 뒤에 접미사가 붙음 (1st, 2nd, 3rd, ...)
    %d 숫자 값으로 표시된 일 (01 to 31)
    %e 숫자 값으로 표시된 일 (0 to 31)
    %f 마이크로초 (000000 to 999999)
    %H 시간 (00 to 23)
    %h 시간 (00 to 12)
    %I 시간 (00 to 12)
    %i 분 (00 to 59)
    %j 년중 일 (001 to 366)
    %k 시간 (0 to 23)
    %l 시간 (1 to 12)
    %M 영문 월 (January to December)
    %m 숫자 값으로 표시된 월 (00 to 12)
    %p AM or PM
    %r AM이나 PM 포맷의 시간 형식 (hh:mm:ss AM/PM)
    %S 초 (00 to 59)
    %s 초 (00 to 59)
    %T 24시간 포맷의 시간 (hh:mm:ss)
    %U 일요일을 첫째주로 하는 주 (00 to 53)
    %u 월요일을 첫째주로 하는 주 (00 to 53)
    %V 일요일을 첫째주로 하는 주 (01 to 53). %X와 함께 사용
    %v 월요일을 첫째주로 하는 주 (01 to 53). %x와 함께 사용
    %W 요일 영문명 (Sunday to Saturday)
    %w 요일 where Sunday=0 and Saturday=6
    %X 한 주의 첫 번째 요일이 일요일인 주의 연도. %V와 함께 사용
    %x 한 주의 첫 번째 요일이 월요일인 주의 연도. %v와 함께 사용
    %Y 4자리 형태의 년
    %y 2자리 형태의 년

     

    수많은 포맷이 있지만 사실 우리가 사용할만한 것은 극히 일부로 정해져 있으니 고민할 필요는 없다.

     

     

    대표적인 date_format 예시

    월을 영어로

     

    SELECT DATE_FORMAT(now(), "%M %d %Y");
    
    # April 24 2022

     

    년월일을 숫자로

    SELECT DATE_FORMAT(now(), "%Y%m%d");
    
    # 20220424

     

    년월일시분초 숫자로

    SELECT DATE_FORMAT(now(), "%Y%m%d%H%i%s");
    
    # 20220424232617

     

    년월일시분초를 숫자로 변경해서 쓰는 경우가 상당히 많다. 이렇게 변경할 경우 날짜값을 long 형으로 변경이 가능하여 데이터를 처리하는데 속도면에서 유리해질 수 있기 때문이다. 그리고 숫자로 변경하더라도 다시 값을 분해할 때 손실이 되지 않는다.

     

    2022년 4월 24일

    SELECT DATE_FORMAT(now(), "%Y년 %c월 %e일");
    
    # 2022년 4월 24일

     

    날짜값에 년, 월, 일과 같이 의존 명사를 붙일 경우 2022년 04월 24일과 같은 식보다는 2022년 4월 24일과 같은 것이 더 자연스러울 것이다. 그래서 월의 경우 %m 대신 %c를 사용하고 마찬가지로 일도 %d 대신 %e를 사용하였다.

     

     

    댓글

    Designed by JB FACTORY