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;
반응형