Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JPA
- Javascript
- 티스토리챌린지
- 각데이터베이스별
- analytics4
- mysql
- DBMS
- git
- java
- 트랜잭션
- group by
- SQL
- spring
- network
- 뷰테이블
- 오블완
- Python
- 명령어
- PostgreSQL
- oracle
- 자바
- API
- mssql
- c#특징
- IntelliJ
- 4요소
- docker
- 차이점
- rebase vs merge
Archives
- Today
- Total
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에서는 CAST와 CONVERT 두 가지 방법으로 데이터 타입을 변환한다.
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에서는 CAST와 CONVERT를 모두 사용할 수 있으며, 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 | 지원 | 간결한 :: 연산자 지원 |
반응형
'DATABASE > SQL' 카테고리의 다른 글
SQL - 테이블 결합, 데이터 통합의 핵심 JOIN 알아보기 (0) | 2025.01.02 |
---|---|
SQL - SQL 각 데이터베이스 별 NULL 처리 방법 (MySQL / MSSQL / ORACLE / PostgreSQL) (0) | 2025.01.01 |
SQL - 데이터 중복 제거하기! (MySQL / MSSQL / Oracle / PostgreSQL) (0) | 2024.12.10 |
SQL - 데이터를 필터링하고 정렬하는 방법 (MySQL / MSSQL / Oracle / PostgreSQL) (WHERE, ORDER BY, LIMIT/FETCH/TOP) (1) | 2024.12.09 |
SQL - 데이터 순위 부여 방법 (MySQL, MSSQL, Oracle, PostgreSQL) (0) | 2024.12.08 |