개발자 미니민의 개발스터디

[Oracle] 오라클 - 단일행 날짜 함수 (TO_DATE/TO_CHAR/INTERVAL)

by mini_min
[Oracle]
오라클 - 단일행 날짜 함수 (TO_DATE/TO_CHAR)

✔️ 단일행 날짜 함수

날짜형 데이터 연산 :

날짜 + 숫자 = 날짜에 숫자만큼 일수를 더함

날짜 - 숫자 = 숫자만큼 일수를 뺀다.

날짜 + 숫자/24 = 숫자만큼의 시간을 더함 ✨✨

날짜1 - 날짜2 = 날짜1에서 날짜2 사이의 일수를 반환 ✨✨

 

 

-- TO_DATE() : 문자를 날짜로 변환할 때 

-- TO_CHAR() : 날짜를 문자로 변환할 때   --형식 변환 가능

SELECT TO_DATE('2001-05-03', 'YYYY-MM-DD') FROM dual;
SELECT SYSDATE FROM dual;
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM dual;
💡 SYSDATE : 시스템 현재 시각
-- 홍길동이 2022-07-01 여자친구를 만났다. 100일 후 ?
SELECT TO_DATE('2022-07-01', 'YYYY-MM-DD') + 100 FROM dual;

--크리스마스까지 얼마나 남았을까?
SELECT TO_DATE('2022-12-25', 'YYYY-MM-DD') - SYSDATE 디데이 FROM dual;

--내 생명주기
SELECT TRUNC(SYSDATE - TO_DATE('1996-04-02', 'YYYY-MM-DD')) "내 일수" FROM dual;

 

 

 

✔️ 시간 계산

--1시간 전

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

--10분 전

SELECT TO_CHAR(SYSDATE-10/24/60, 'YYYY-MM-DD HH24:MI:SS') FROM dual;

--10초 전

SELECT TO_CHAR(SYSDATE-10/24/60/60, 'YYYY-MM-DD HH24:MI:SS') FROM dual;

 

 

 

✔️ INTERVAL (간격)

--1년 후 오늘

SELECT SYSDATE + (INTERVAL '1' YEAR) FROM dual;

--1년 전 오늘

SELECT SYSDATE - (INTERVAL '1' YEAR) FROM dual;

-- 한 달 후 오늘

SELECT SYSDATE + (INTERVAL '1' MONTH) FROM dual;

 

SELECT SYSDATE + (INTERVAL '1' DAY) FROM dual;
SELECT SYSDATE + (INTERVAL '1' HOUR) FROM dual;
SELECT SYSDATE + (INTERVAL '1' MINUTE) FROM dual;
SELECT SYSDATE + (INTERVAL '1' SECOND) FROM dual;

 

 

🔒 문제

 -- 근속년수가 1년 미만인 사원
    SELECT empNo, name, hireDate
    FROM emp
    WHERE SYSDATE < hireDate + (INTERVAL '1' YEAR);
--내년 1월 1일 (절삭하고 다시 TO_CHAR 형태로 바꾸기)
    SELECT TO_CHAR(TRUNC(SYSDATE + (INTERVAL '1' YEAR), 'YYYY'), 'YYYY-MM-DD') 
    FROM dual;

 

 

 

 

 

 

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기