[Oracle] 오라클 현재시간, 현재날짜 구하기 (SYSDATE)

오라클 SQL에서 SYSDATE 함수를 사용하여 서버의 현재 날짜와 시간을 조회할 수 있다. 반면, SYSTIMESTAMP 함수는 나노초 단위까지 더 정밀한 시간을 반환하고 타임존 정보도 포함한다. SYSDATEDATE 타입을 반환하고, SYSTIMESTAMPTIMESTAMP WITH TIME ZONE 타입을 반환한다. SYSDATE는 간단한 현재 시각이 필요할 때 주로 사용되며, SYSTIMESTAMP는 더 높은 정밀도와 타임존 정보가 필요할 때  유용하다. 이 두 함수 모두 서버의 시스템 시간을 기준으로 동작한다.

 

목차

 

SYSDATE로 현재 날짜, 시간 구하기

SELECT SYSDATE
  FROM dual

 

 

SYSDATE 함수를 사용하여 현재 날짜, 현재 시간을 조회할 수 있다. 날짜 형식이기 때문에 오라클 서버 또는 쿼리툴에 설정된 날짜 형식으로 표시된다.

 

YYYY-MM-DD 2024-05-25

RR/MM/DD 24/05/25

 

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

 

 

TO_CHAR 함수를 사용하여 DATE 형식을 원하는 포맷의 문자열로 변환할 수 있다.

( HH24: 24시간 단위, HH: 12시간 단위 )

 

SYSTIMESTAMP로 현재 날짜, 시간 구하기

SELECT SYSTIMESTAMP
  FROM dual

 

 

SYSTIMESTAMP 함수를 사용하면 SYSDATE 함수와 동일한 현재 날짜와 시간을 조회할 수 있다. 그리고 SYSTIMESTAMP 함수는 9자리의 밀리초를 추가로 반환한다.

 

SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD')            AS cur_date
     , TO_CHAR(SYSTIMESTAMP, 'HH24:MI:SS')            AS cur_time
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS') AS cur_datetime
  FROM dual

 

 

SYSTIMESTAMP 함수도 SYSDATE 함수와 동일하게 TO_CHAR 함수를 사용하여 포맷을 변환할 수 있다.

 

SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS:FF')  AS cur_datetime_ff
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS:FF1') AS cur_datetime_ff1
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS:FF2') AS cur_datetime_ff2
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS:FF3') AS cur_datetime_ff3
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS:FF4') AS cur_datetime_ff4
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS:FF5') AS cur_datetime_ff5
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS:FF6') AS cur_datetime_ff6
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS:FF6') AS cur_datetime_ff7
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS:FF7') AS cur_datetime_ff8
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS:FF8') AS cur_datetime_ff9    
  FROM dual

 

 

날짜 변환 포맷에 FF, FF1 ~ FF9를 사용하여 밀리 초를 추가할 수 있다.

 

FF:  6자리

FF1 ~ FF9: 1자리 ~ 9자리

 

CURRENT_DATE, CURRENT_TIMESTAMP로 구하기

SELECT CURRENT_DATE
     , CURRENT_TIMESTAMP
  FROM dual

 

 

CURRENT_DATE, CURRENT_TIMESTAMP 함수도 SYSDATE 함수와 동일하게 현재 날짜, 시간을 반환한다. 그러나 CURRENT_DATE 함수는 서버에 설정된 타임 존에 따라서 달라질 수 있다는 것을 인지하고 있어야 한다.

 

--ALTER SESSION SET TIME_ZONE = 'Asia/Seoul';
 ALTER SESSION SET TIME_ZONE = 'America/New_York';

 

 

타임 존을 "서울"에서 "뉴욕"으로 변경 후 SYSTIMESTAMP와 CURRENT_TIMESTAMP의 시간이 틀려진 것을 확인할 수 있다.

 

CURRENT_DATE, CURRENT_TIMESTAMP 함수를 사용할 때는 타임 존 설정에 따라서 시간이 달라질 수 있으므로 특수한 상황이 아니면 SYSDATE, SYSTIMESTAMP 함수를 사용할 것을 권장한다.

 

 

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

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

gent.tistory.com

 

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

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

gent.tistory.com

 

 

댓글

Designed by JB FACTORY