단일행 함수 - 날짜 함수

양혜정·2024년 2월 23일

Oracle

목록 보기
7/49

★ 단일행 함수의 종류 ★

  1. 문자 함수
  2. 숫자 함수
  3. 날짜 함수
  4. 변환 함수
  5. 기타 함수

3. 날짜 함수

  1. 날짜1 + 숫자 = 날짜2
    날짜1 - 숫자 = 날짜2

=> 숫자의 단위는 일 수 이다.

  1. add_months(날짜,숫자)
    숫자가 양수이면 개월 수를 더해주고, 숫자가 음수이면 개월 수를 빼준다.

=> 숫자의 단위는 개월 수 이다.

-- sysdate 는 2024년 2월 24일 기준
select sysdate + 1, sysdate - 2
	, add_months(sysdate,1), add_months(sysdate,-2)
from dual;
-- 결과
-- sysdate + 1 = 2024-02-25 01:01:14
-- sysdate - 2 = 2024-02-22 01:01:14
-- add_months(sysdate,1) = 2024-03-24 01:01:14
-- add_months(sysdate,-2) = 2023-12-24 01:01:14

  1. months_between(날짜1, 날짜2)
    날짜1 - 날짜 2 의 값

=> 숫자의 단위는 개월 수 이다.

  1. extract
  • extract(year from 날짜) : 날짜로부터 년 만 추출
  • extract(month from 날짜) : 날짜로부터 달 만 추출
  • extract(day from 날짜) : 날짜로부터 일 만 추출
-- sysdate 는 2024년 2월 24일 기준
select sysdate
        , extract(year from sysdate)
        , extract(month from sysdate)
        , extract(day from sysdate)
from dual;
-- 결과
-- sysdate : 2024-02-24 01:15:57
-- extract(year from sysdate) : 2024
-- extract(month from sysdate) : 2
-- extract(day from sysdate) : 24

  1. last_day(날짜)
    날짜가 포함된 달력에서 맨 마지막 날짜

  2. next_day(날짜, '요일')
    '요일' 자리 => '일' , '월' , '화' , '수' , '목' , '금' , '토'
    날짜로부터 다음번에 돌아오는 가장 빠른 '요일' 의 날짜

-- sysdate 는 2024년 2월 24일 기준
select sysdate, next_day(sysdate,'일')
	, next_day(sysdate,'수')
from dual;
-- 결과
-- sysdate : 2024-02-24 01:29:08
-- next_day(sysdate,'일') : 2024-02-25 01:29:08
-- next_day(sysdate,'수') : 2024-02-28 01:29:08

  1. to_yminterval('년-월')
    연산자가 + 이면 년과 월을 날짜에서 더해주고, - 이면 빼준다.

  2. to_dsinterval('일 시간:분:초')
    연산자가 + 이면 더해주고, - 이면빼준다.

select sysdate
   , sysdate 
   + to_yminterval('01-02') -- 1-2 도 가능하지만 01-02를 권장 
   + to_dsinterval('003 04:05:06')
     -- 3 4:5:6도 가능 하지만 003 04:05:06 을 권장
from dual;
-- 결과
-- 	2024-02-24 01:35:48	|	2025-04-27 05:40:54

정리

-> local_hr에서작업한것

0개의 댓글