[Oracle] 오라클 SYSDATE 포맷 변경 (YYYY-MM-DD)
- 데이터베이스/오라클
- 2023. 11. 30.
오라클에서 현재 날짜 및 시간을 조회할 때 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 함수를 사용하여 명시적으로 포맷을 변경 후 사용하는 것을 권장한다. 시스템 설정이 바뀌어서 쿼리문의 결과에 영향을 미칠 수 있기 때문이다.