[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;
'SQL쿼리' 카테고리의 다른 글
[Oracle] 오라클 - 변환 함수 (TO_CHAR/SYSTIMESTAMP) (0) | 2022.08.09 |
---|---|
[Oracle] 오라클 - EXTRACT/MONTHS_BETWEEN/NEXT_DAY (0) | 2022.08.09 |
[Oracle] 오라클 - GROUP BY절 (HAVING 절) (0) | 2022.08.08 |
[Oracle] 오라클 - 집계함수(COUNT), SUM/MAX/MIN/AVG (0) | 2022.08.08 |
[Oracle] 오라클 - 단일행 문자 함수 (LPAD/RPAD/TRIM/TRANSLATE) (0) | 2022.08.06 |
블로그의 정보
개발자 미니민의 개발로그
mini_min