데이터베이스/Oracle
[Oracle] 데이터 타입 변환(TO_CHAR,TO_NUMBER,TO_DATE)
페어팩
2020. 8. 20. 15:12

개발을 하다 보면 오라클에서 데이터 타입을 맞춰줘야 할 때가 있다. MYSQL에서야 CONVERT로 변환이 가능하지만 오라클에서는 통하지 않는다. 오라클에서 데이터 타입 변경을 하고 싶을때는 CONVERT가 아닌 다른 함수를 사용하여야 하는데 TO_[데이터타입] 형식이 주로 사용된다. 대표적으로 TO_CHAR , TO_NUMBER, TO_DATE 등이 있다.
TO_CHAR (CHAR 형변환)
--사용법--
SELECT TO_CHAR([컬럼명]) FROM [테이블명]
--예제--
SELECT TO_CHAR(10000) FROM DUAL --INT TO CHAR
SELECT TO_CHAR(SYSDATE) FROM DUAL --DATE TO CHAR
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL --DATE TO CHAR(포맷팅)
--실전사용에서는 예제3과 같이 DATE형을 CHAR형으로 바꿀때 주로 사용된다
SELECT TO_CHAR(SYSDATE,'YYYYMMDD24MISS') FROM DUAL
TO_NUMBER (NUMBER 형변환)
--사용법
SELECT TO_NUMBER([컬럼명]) FROM [테이블명]
--예제-- SELECT TO_NUMBER('10000') FROM DUAL -- CHAR TO NUMBER
SELECT TO_NUMBER('10000') + TO_NUMBER('20000') FROM DUAL --VACHAR TO NUMBER(계산)
--TO_NUMBER형은 SQL 안에서 연산이 필요할 때 주로 사용한다.
TO_DATE (DATE형으로 변경)
--사용법 (반드시 포맷을 지정해주어야합니다.)--
SELECT TO_DATE([컬럼명],[포맷형식])FROM [테이블명]
-- 예제
-- CHAR TO_DATE(YYYY-MM-DD 포맷)
SELECT TO_DATE('2019-01-25','YYYY-MM-DD') FROM DUAL
--2018-01-01 ~ 현재까지 지난 날짜계산
SELECT TRUNC(SYSDATE - TO_DATE('2018-01-01','YYYY-MM-DD'))FROM DUAL
--2019-01-24에서 100일 후 날짜 계산
SELECT TRUNC(TO_DATE('2019-01-24','YYYY/MM/DD'))+100 FROM DUAL