본문 바로가기
DB/Oracle

[Oracle] 오라클 date <-> string 형변환하기 to_char(), to_date()

by 졸린이 2025. 1. 17.
반응형

DATE -> STRING

DB에 있는 데이터가 date 타입일때 string으로 변환해서 사용하고 싶을 때가 종종 있다.

select  sysdate from dual;

 

먼저 date 타입을 확인해보면 

YYYY-MM-DD HH:MM:SS 이런 형식으로 이루어져 있다.

 

이걸 가져와서 백이나 프론트에서 그대로 쓰기는 번거롭기 때문에 원하는 string형식으로 변환하여 사용한다.

방법은 to_char()함수를 이용하면 된다.

 

select to_char(sysdate, 'yyyymmdd') from dual;

to_char(컬럼, 'yyyymmdd') 이런식으로 작성하면 20250117 이렇게 출력된다.

yyyy에 년도 mm에 월, dd에 일자를 매칭하여 출력해준다.

 

to_char(컬럼, ' yyyy/mm/dd') 이런식으로 하면 2025/01/17 이런식으로 표기가 된다.

 

select to_char(sysdate, 'yyyymmdd hh:mi') from dual;

이런식으로 하면 시 분까지 표기할 수 있다.

month minute 앞글자가 같기 때문에 분은 mi로 표기한다.

 

STRING -> DATE

select to_date('20250117', 'yyyymmdd') from dual;

반대로도 가능하다. to_date()함수를 이용하고 마찬가지로 yyyy mm dd에 글자위치에 맞춰 매칭하여 준다.

이때 시분초는 따로 입력하지 않아. 전부 0으로 표기된다.

 

select to_date('2025-01-17 18:39:20', 'yyyy-mm-dd hh24:mi:ss') from dual;

시분초까지 입력하고 싶으면 이런식으로 작성하면된다.

hh뒤에 24를 붙이는 이유는 24를 빼면 시는 1~12까지만 입력할 수 있기 때문이다.

반응형

댓글