[Oracle] 오라클 SYSDATE 포맷 변경 (YYYY-MM-DD)

오라클에서 현재 날짜 및 시간을 조회할 때 SYSDATE 함수를 사용한다. SYSDATE를 조회하면 오라클에 설정된 날짜 포맷으로 조회된다. 원하는 포맷(YYYY-MM-DD)으로 변경해서 조회하기 위해서는 TO_CHAR 함수를 사용하여 포맷을 변경하는 방법과 오라클의 NLS 설정 자체를 변경하는 방법이 있다.

 

목차

 

TO_CHAR 함수를 사용하여 포맷 변경

SELECT SYSDATE
     , TO_CHAR(SYSDATE, 'YYYY-MM-DD')
     , TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
  FROM dual

 

 

위의 예제를 보면 SYSDATE가 RR/MM/DD(23/11/30) 포맷으로 조회된 것을 확인할 수 있다.

TO_CHAR 함수를 사용하여 SYSDATE의 날짜와 시간을 원하는 포맷으로 변경할 수 있다.

 

TO_CHAR(SYSDATE, 'YYYY-MM-DD')
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI')
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
TO_CHAR(SYSDATE, 'HH24:MI:SS')
TO_CHAR(SYSDATE, 'YYYY/MM/DD')
TO_CHAR(SYSDATE, 'MM/DD')

 

NLS 설정을 변경하여 포맷 변경

SELECT *
  FROM nls_session_parameters
 WHERE parameter LIKE '%FORMAT%'

 

 

오라클에서 SYSDATE 뿐만 아니라 모든 날짜 형식이 "NLS_DATE_FORMAT"에 지정된 포맷으로 표시된다.

 

NLS_DATE_FORMAT를 자주 사용하는 포맷으로 변경해 놓으면 TO_CHAR 함수를 사용하지 않아도 데이터 조회 시 원하는 포맷으로 표시된다.

 

ALTER SESSION SET nls_date_format = 'YYYY-MM-DD'

 

ALTER 명령을 사용하여 NLS_DATE_FORMAT 포맷을 'YYYY-MM-DD' 포맷으로 변경한다.

 

 

포맷 변경 후 SYSDATE가 변경되어 표시되는 것을 확인할 수 있다.

'YYYY-MM-DD'로 포맷을 변경해도 시간은 사라지지 않고 표시만 되지 않는다.

 

ALTER SESSION SET nls_date_format = 'YYYY-MM-DD HH24:MI:SS'

 

 

NLS_DATE_FORMAT 포맷을 'YYYY-MM-DD HH24:MI:SS' 변경 후 시간까지 표시되는 것을 확인할 수 있다.

 

SYSDATE를 조회해서 프로그램에서 사용해야 할 경우 TO_CHAR 함수를 사용하여 명시적으로 포맷을 변경 후 사용하는 것을 권장한다. 시스템 설정이 바뀌어서 쿼리문의 결과에 영향을 미칠 수 있기 때문이다.

 

 

[Oracle] 오라클 TO_CHAR 함수 사용법 정리

오라클에서 쿼리문을 작성할 때 TO_CHAR() 함수는 날짜, 숫자 등의 값을 문자열로 변환하는 함수이다. 자주 사용하는 기본 함수이므로 아래의 다양한 변환 방법을 알고 있으면 많은 도움이 된다.

gent.tistory.com

 

댓글

Designed by JB FACTORY