ENFJ 비전공자 개발스터디

오라클 Oracle SQL 함수 날짜 함수 본문

Database

오라클 Oracle SQL 함수 날짜 함수

madb 2021. 12. 28. 16:59
반응형

오라클 Oracle SQL 함수 날짜 함수 

날짜 함수는 DATE 함수나 TIMESTAMP 함수와 같은 날짜형을 대상으로

연산을 수행해 결과를 반환하는 함수다.

 

대부분 반환 결과는 날짜형이나

함수에 따라 숫자를 반환할 때도 있다.

 

SYSDATE, SYSTIMESTAMP

SYSDATE와 SYSTIMESTAMP는 현재일자와 시간을 각각 DATE, TIMESTAMP 형으로 반환한다.

SELECT SYSDATE, SYSTIMESTAMP
FROM DUAL;

 

ADD_MONTHS(date,integer)

ADD_MONTHS 함수는 매개변수로 들어온 날짜에 interger 만큼의 월을 더한 날짜를 반환한다.

SELECT ADD_MONTHS(SYSDATE, 1), ADD_MONTHS(SYSDATE, -1)
FROM DUAL;

n달은 정수여야 하며 음수도 가능하다. 

sqld 문제 >>  ADD_MONTHS( '11-JAN-94', 6 )     →   '11-JUL-94'

 

MONTHS_BETWEEN(date1,date2)

MONTHS_BETWEEN 함수는 두 날짜 사이의 개월 수를 반환하는데, date2가 date1보다 빠른 날짜가 온다.

SELECT MONTHS_BETWEEN(SYSDATE, ADD_MONTHS(SYSDATE, 1)) MON1,
       MONTHS_BETWEEN(ADD_MONTHS(SYSDATE, 1), SYSDATE) MON2
FROM DUAL;

 


date1이 date보다 나중이면 결과는 양수고 date1이 date2보다 먼저면 결과는 음수다.
결과 중 정수가 아닌 부분은 달의 일부를 나타낸다.

sqld 문제 >> MONTHS_BETWEEN( '01-SEP-95', '11-JAN-94' )        19.6774194

 

LAST_DAY(date)

LAST_DAY는 date 날짜를 기준으로 해당 월의 마지막 일자를 반환한다.

SELECT LAST_DAY(SYSDATE)
FROM DUAL;

date를 포함하는 달의 마지막 날짜를 찾는다.

sqld 문제 >>  LAST_DAY( '01-FEB-95' )        '28-FEB-95'

 

ROUND(date,format), TRUNC(date,format)

ROUND와 TRUNC는 숫자 함수이면서 날짜 함수로도 쓰이는데, 

ROUND는 format에 따라 반올림한 날짜를, 

TRUNC는 잘라낸 날짜를 반환한다.

SELECT SYSDATE, ROUND(SYSDATE, 'month'), TRUNC(SYSDATE, 'month')
FROM DUAL;

 

NEXT_DAY(date,char)

NEXT_DAY는 date를 char에 명시한 날짜로 다음 주 주중 일자를 반환한다.

SELECT NEXT_DAY(SYSDATE, '금요일')
FROM DUAL;

date보다 이후 날짜이고 지정한 요일 'char'에 해당하는 날짜를 찾는다.
char의 값은 요일을 나타내는 숫자 또는 문자열이다.

sqld 문제 >>  NEXT_DAY( '01-SEP-95', 'FRIDAY' )        '08-SEP-95'

 

 

ROUND( date[, 'fmt'] )
형식 모델 fmt에 의해 지정된 단위로 반올림한 date를 반환한다.

형식 모델 fmt를 생략하면 date는 가장 가까운 날로 반올림 된다.

sqld 문제 >>  ROUND( SYSDATE, 'MONTH' )        01-AUG-95
sqld 문제 >>  ROUND( SYSDATE, 'YEAR' )        01-JAN-96




TRUNC( date[, 'fmt'] )
날짜의 시간 부분을 형식 모델 fmt로 지정한 단위까지 남기고 버린 후 반환한다.

형식 모델 fmt를 생략하면 date는 가장 가까운 날에 맞추어 버려진다.

sqld 문제 >> TRUNC( SYSDATE, 'MONTH' )        01-JUL-95
sqld 문제 >> TRUNC( SYSDATE, 'YEAR' )        01-JAN-95

반응형