티스토리 뷰

TEMP 테이블

지난 SQL 포스팅에서는 오라클 문자 함수에 대해 알아보았다. 이번에는 날짜 함수에 대해 알아보자. 날짜와 날짜를 더하거나 뺄 수 있을까? 된다는 결과는 무엇일까? DATE 형은 초단위까지 포함한다.

SYSDATE는 시스템의 일자를 DATE 형으로 보관하고 있는 가상 컬럼이다. 어찌 보면 시스템 일자를 보여주는 함수라고도 할 수 있다. 또한 날짜에 숫자를 더한다는 것은 일자를 더하는 의미이다.

단일행 함수(날짜 함수)

대분류 소분류 함수 기능
단일행 함수 날짜 ADD_MONTHS 주어진 일자에 개월 단위의 가감을 하여 반환한다.
MONTHS_BETWEEN 주어진 두 개의 일자 간격 개월을 반환한다.
NEXT_DAY 주어진 일자가 다음에 나타나는 지정요일(1:일요일 ~ 7: 토요일)의 날짜를 반환한다.
LAST_DAY 주어진 일자가 포함된 월의 말일을 반환한다.
SELECT SYSDATE + BIRTH_DATE
  FROM TEMP
 WHERE EMP_NAME = '홍길동';

SELECT SYSDATE - BIRTH_DATE
  FROM TEMP
 WHERE EMP_NAME = '홍길동';

SELECT BIRTH_DATE
     , BIRTH_DATE + 1
     , BIRTH_DATE -1
  FROM TEMP
 WHERE EMP_NAME = '홍길동';

SELECT TO_CHAR(BIRTH_DATE, 'HH24:MI:SS') AS BIRTH_DATE
     , TO_CHAR(BIRTH_DATE + 14/24, 'HH24:MI:SS') AS TIME
     , TO_CHAR(BIRTH_DATE + 30/(24*60), 'HH24:MI:SS') AS MIN
     , TO_CHAR(BIRTH_DATE + 50/(24*60*60), 'HH24:MI:SS') AS SEC
  FROM TEMP
 WHERE EMP_NAME = '홍길동';

ADD_MONTHS

-- 주어진 일자에 개월 단위의 가감을 하여 반환한다.
SELECT BIRTH_DATE
     , ADD_MONTHS(BIRTH_DATE, 1)
     , ADD_MONTHS(BIRTH_DATE, -1)
  FROM TEMP
 WHERE EMP_NAME = '홍길동';

MONTHS_BETWEEN

-- 주어진 두 개의 일자 간격 개월을 반환한다.
SELECT MONTHS_BETWEEN(SYSDATE, BIRTH_DATE) AS MON_TERM
  FROM TEMP
 WHERE EMP_NAME = '홍길동';

NEXT_DAY

-- 주어진 일자가 다음에 나타나는 지정요일(1:일요일 ~ 7:토요일)의 날짜 반환한다.
SELECT BIRTH_DATE
     , NEXT_DAY(BIRTH_DATE, 1)
  FROM TEMP
 WHERE EMP_NAME = '홍길동';

LAST_DAY

-- 주어진 일자가 포함된 월의 말일을 반환한다.
SELECT BIRTH_DATE
     , LAST_DAY(BIRTH_DATE)
  FROM TEMP
 WHERE EMP_NAME = '홍길동';

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함