파워노트

oracle SYSDATE, SYSTIMESTAMP 본문

oracle

oracle SYSDATE, SYSTIMESTAMP

파워킴 2021. 12. 7. 00:27
반응형

SYSDATE 

  • 연, 월, 일, 시, 분, 초 까지 입력 가능  ( 초단위 )
  • DATE  type 
  • 얻어온 숫자에 연산이 가능하다.  ( SYSDATE-1  : 하루 전날 )
  • exam
    SELECT TO_DATE(SYSDATE, 'yyyy mm dd') AS "현재시간"  FROM DUAL;
    
    SELECT TO_CHAR(SYSDATE, 'RRRR-MM-DD HH24:MI:SS') AS "현재시간"  FROM DUAL;
     
    -- 1일 전
    SELECT TO_CHAR(SYSDATE-1, 'RRRR-MM-DD HH24:MI:SS') AS "현재시간"  FROM DUAL;
     
    -- 1시간 전
    SELECT TO_CHAR(SYSDATE-1/24, 'RRRR-MM-DD HH24:MI:SS') AS "현재시간"  FROM DUAL;
     
    -- 1분 전
    SELECT TO_CHAR(SYSDATE-1/24/60, 'RRRR-MM-DD HH24:MI:SS') AS "현재시간"  FROM DUAL;
     
    -- 1초 전
    SELECT TO_CHAR(SYSDATE-1/24/60/60, 'RRRR-MM-DD HH24:MI:SS') AS "현재시간"  FROM DUAL;
     
    -- 5시간 30분 10초 전
    SELECT TO_CHAR(SYSDATE-(5/24+30/24/60+10/24/60/60), 'RRRR-MM-DD HH24:MI:SS') AS "현재시간"  FROM DUAL;
     
    -- ADD_MONTHS(a,b) a 날짜에 b 달을 더한 값을 반환
    SELECT TO_CHAR(ADD_MONTHS(SYSDATE,4),'RRRR-MM-DD') AS "MONTH" FROM DUAL;
     
    -- b에 음수가 들어가면 빼준다.
    SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-4),'RRRR-MM-DD') AS "MONTH" FROM DUAL;
    SELECT TO_CHAR(ADD_MONTHS(SYSTIMESTAMP,4),'RRRR-MM-DD') AS "MONTH" FROM DUAL;
     
    -- 4) MONTHS_BETWEEN(day1, day2) : day1 과 day2 사이의 달수를 NUMBER 타입으로 반환한다.
    SELECT MONTHS_BETWEEN(TO_DATE('2017-11-10','YYYY-MM-DD'), TO_DATE('2017-09-12','YYYY-MM-DD'))
    AS "month" FROM DUAL;
     
    -- 일(day) 구하기 ★★★
    SELECT TO_DATE('2017-11-10','YYYY-MM-DD') - TO_DATE('2017-09-12','YYYY-MM-DD')
    AS "day" FROM DUAL;
     
    -- LAST_DAY(m) : 지정한 달의 마지막 날짜 가져오기 앞에 항상 다른 컬럼과 같이 사용해야함
    SELECT SYSDATE TODAY,LAST_DAY(SYSDATE) AS "lastDay" FROM DUAL;

[ 예제 참고 : https://mine-it-record.tistory.com/46 ]

 

 

SYSTIMESTAMP  

  • 연도, 월, 일, 시, 분, 초 + 밀리초까지 입력가능  ( 밀리초 단위 )
  • TIMESTAMP  type 
  • exam
-- 2021-12-06 03:24:25:813597
-- FF 는 밀리세컨드를 나타낸다.
select to_char(systimestamp, 'YYYY-MM-DD HH:MI:SS:FF') from dual;  

-- FFX : 밀리세컨드 자리수를 나타냄
--  2021-12-06 03:25:40:4
select to_char(systimestamp, 'YYYY-MM-DD HH:MI:SS:FF1') from dual; 

-- 2021-12-06 03:26:03:97
select to_char(systimestamp, 'YYYY-MM-DD HH:MI:SS:FF2') from dual; 

-- 2021-12-06 03:26:26:509817
select to_char(systimestamp, 'YYYY-MM-DD HH:MI:SS:FF6') from dual;

 

반응형
Comments