DataBase

[MySQL] 쿼리에서 데이터(날짜, 전화) 형식 변환하기

ydin 2024. 3. 14. 14:14

MySQL 문법으로 데이터 변환하기 입니다.

 

시간 변환

1. 시간 -> 문자열, date_format (날짜, 출력 형식)

2024-03-14 00:00:00 -> 2024-03-14 처럼 datetime에서 시간빼고 'YYYY-mm-DD' 형식으로 변환하기 위해서는 date_format()을 이용해야한다.

-- 2024-03-14 00:00:00을 2024-03-14 형태로 출력
select date_format(order_date, '%Y-%M-%D')

 

여기서 의도하는 형식에는 꼭 %를 추가해줘야 한다. %없이 'Y-M-D'로 입력하면 '2024-03-14'가 아닌 'Y-M-D'로 날짜가 변환된다.

 

2. 문자열 -> 날짜

-- 202403014 문자열을 2024-03-14 형태의 날짜로 변환
select str_to_date('20240314', '%Y-%M-%D')

 

문자열 변환

1. 문자열에서 특정 문자('-') 제거하기

예시로 '010-0000-0000' -> '01000000000'처럼 전화번호에서 -를 없애야 할 때가 있다. 

이때는 replace(컬럼명, 해당 문자, 바꿀 문자)를 이용하면 된다. 

-- 전화번호에서 하이픈(-) 제거
select replace(phone_number, '-', '')

 

2. 문자 -> 숫자 타입 변경

cast()를 이용하면 된다. 

cast(문자열 as 타입)으로 작성하면 되는데, 타입에는 binary, char, signed(부호있는 숫자), date, datetime, time, unsigned(부호없는 숫자) 등이 있다. 

-- 문자 '1'을 부호없는 숫자 1로 변환
select cast('1' as unsigned) as test

 

 

참고

https://velog.io/@syh0397/SQL-%EB%82%A0%EC%A7%9C%EC%99%80-%EC%8B%9C%EA%B0%84-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%8B%A4%EB%A3%A8%EA%B8%B0

 

 

 

https://dev114.tistory.com/295

 

 

https://blog.naver.com/newyasin/70164671012