괴발개발 성장기

Study/Mysql

[MySql] string를 date 타입으로 변경하는 방법

지니유 2022. 6. 2. 16:02
반응형

# 배경

회사에서 배너를 만드는데 start_date와 end_date를 YYYYMMDDHHmm 12자리 string으로 저장을 했다. 현재 이 배너가 활성화 되어야하는지 체크 하려면 날짜를 봐야했다. 그냥 비교가 되지 않아서 string을 date 타입으로 변경해서 select문을 해야한다는 걸 알았다.

 

# 문법

STR_TO_DATE( string으로된데이터 , date형식)

 

# 예시

select STR_TO_DATE('202206022210', '%Y%m%d%H%i');
select STR_TO_DATE('202206022210', '%Y%m%d');

# 결과

2022-06-02 22:10:00
2022-06-02

# Type 형식

표기 예시
%Y%m%d 2022-06-02
%Y%m%d%H%i%s 2022-06-02 22:10:00
%H%i%s 22:10:06

 

# string과 date 포맷 같아야함

  • string이 2022-02-08이면 date 포맷도 %Y-%m-%d 이렇게 써야한다.

예시

select STR_TO_DATE('2022-06-02', '%Y%m%d'); -- null
select STR_TO_DATE('2022-06-02', '%Y-%m-%d'); -- 2022-06-02

select STR_TO_DATE('20220602', '%Y-%m-%d'); -- null
select STR_TO_DATE('20220602', '%Y%m%d'); -- 2022-06-02

 

반응형