반응형
MySQL에서 쿼리를 사용하다 보면 형변환이 필요할 때가 있다.
데이터 타입이 CHAR인 컬럼을 조회할 때 숫자 타입으로 바꿔서 조회하는 것이 필요한 경우가 있다.
특히 숫자로 이뤄진 컬럼인 줄 알고 정렬을 했는데
1, 11 111, 2, 23, 234, 33, ... 이렇게 정렬되는 경우가 있다.
아마 컬럼의 타입이 INT가 아니라 VARCHAR이기 때문일 것이다.
이때 MySQL에서는
- CAST 함수
- CONVERT 함수
둘 중 하나를 사용해 데이터 형변환을 할 수 있다.
변환 가능한 데이터 형식은 다음과 같다.
- BINARY[(N)]
- CHAR[(N)] [charset_info]
- DATE
- DATETIME
- DECIMAL[(M[,D])]
- JSON
- NCHAR[(N)]
- SIGNED [INTEGER]
- TIME
- UNSIGNED [INTEGER]
간단하게 사용 방법을 알아보면 다음과 같다.
1. CAST(값 AS 데이터형식)
SELECT * FROM USERS ORDER BY CAST(USER_ID AS UNSIGNED);
// 문자에서 숫자로 변환
SELECT CAST('123' AS UNSIGNED) AS test;
SELECT CAST('123' AS UNSIGNED) FROM DUAL;
// 숫자에서 문자로 변환
SELECT CAST(2 AS char(1)) AS test;
SELECT CAST(123 AS CHAR(3)) FROM DUAL;
// 문자 또는 숫자를 날짜 타입으로 변환
SELECT CAST(20230418 AS DATE) FROM DUAL; // 2023-04-18
SELECT CAST('20230418' AS DATE) FROM DUAL; // 2023-04-18
2. CONVERT(값, 데이터형식[길이])
// 숫자를 문자열로 변환
SELECT CONVERT(202304180950, CHAR); // "202304180950"
// 숫자를 날짜 타입으로 변환
SELECT CONVERT(20230418, DATE); // 2023-04-18
// SIGNED 타입으로 변환
SELECT CONVERT(NOW(), SIGNED); // 20230418135712
반응형
'DataBase' 카테고리의 다른 글
[MSSQL] DB Connection Pool 조회 및 연결된 세션 정보 조회 쿼리 (0) | 2024.02.21 |
---|---|
[MySQL] MySQL 외부 접속 Connection Locked 에러 해결 (0) | 2024.01.22 |
[DB] SELECT Query 실행 순서 (0) | 2023.08.20 |
[MySQL] Too many connections 에러 - Connection 수 확인 (0) | 2022.12.22 |
[MongoDB] Windows10 MongoDB 설치 (0) | 2022.12.02 |