hanker

SQL - 각 데이터베이스 별 데이터 타입 변환 방법 (MySQL / MSSQL / ORACLE / PostgreSQL), CAST와 CONVERT 사용법 본문

DATABASE/SQL

SQL - 각 데이터베이스 별 데이터 타입 변환 방법 (MySQL / MSSQL / ORACLE / PostgreSQL), CAST와 CONVERT 사용법

hanker 2024. 12. 31. 00:00
반응형

SQL에서 데이터 타입 변환은 데이터 처리에서 자주 사용하는 기능이다.

예를 들어, 숫자를 문자열로 변환하거나, 날짜를 다른 포맷으로 변경할 때 데이터를 변환해야 하는 경우가 있다.

이를 구현하는 방법은 데이터베이스마다 약간씩 다른데,

이번 글에서는 각 데이터베이스 별로(Oracle, MySQL, MSSQL, PostgreSQL) 데이터 타입 변환을 처리하는 방법을 알아보자.

 


MySQL

 

 

MySQL에서는 CASTCONVERT 두 가지 방법으로 데이터 타입을 변환한다.

SELECT CAST('123' AS SIGNED) AS ConvertedNumber;

# CONVERT는 변환뿐만 아니라 데이터 인코딩을 변경할 때도 사용
SELECT CONVERT('123' USING utf8) AS Utf8String;
SELECT CONVERT('123' AS UNSIGNED) AS ConvertedNumber;

 

 


Oracle

 

Oracle은 데이터 타입 변환을 위해 CAST 함수와 TO_CHAR, TO_DATE 등의 함수를 제공한다.

# CAST 함수는 데이터를 명시적으로 변환할 때 사용
SELECT CAST('123' AS NUMBER) AS ConvertedNumber FROM DUAL;

# TO_CHAR는 데이터를 문자열로 변환하고, TO_DATE는 문자열을 날짜로 변환
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') AS DateString FROM DUAL;
SELECT TO_DATE('2024-12-29', 'YYYY-MM-DD') AS DateObject FROM DUAL;

 


MSSQL

 

MSSQL에서는 CASTCONVERT를 모두 사용할 수 있으며, CONVERT는 형식(format)을 지정할 수 있다는 점에서 유용하다.

# CAST 사용
SELECT CAST('123' AS INT) AS ConvertedNumber;

# CONVERT 사용
SELECT CONVERT(VARCHAR, GETDATE(), 120) AS DateString;

* CONVERT의 세 번째 매개변수는 날짜 형식을 지정한다.

 


PostgreSQL

 

PostgreSQL에서는 CAST:: 연산자, Oracle에서 사용하는 TO_CHAR, TO_DATE를 사용하여 데이터 타입 변환을 수행한다.

# CAST 사용 
SELECT CAST('123' AS INTEGER) AS ConvertedNumber;

# :: 연산자 사용
SELECT '123'::INTEGER AS ConvertedNumber;

# TO_CHAR / TO_DATE 사용
SELECT TO_CHAR(CURRENT_DATE, 'YYYY-MM-DD') AS DateString;
SELECT TO_DATE('2024-12-29', 'YYYY-MM-DD') AS DateObject;

 


정리

 

데이터베이스 변환 함수 날짜/문자 변환 비고
Oracle CAST, TO_CHAR, TO_DATE 지원 풍부한 날짜/문자 변환 함수
MySQL CAST, CONVERT 지원 CONVERT는 인코딩도 가능
MSSQL CAST, CONVERT 지원 CONVERT로 포맷 지정 가능
PostgreSQL CAST, ::, TO_CHAR, TO_DATE 지원 간결한 :: 연산자 지원

 

 

반응형