Nerdy

Oracle SQL 함수 정리 : 날짜 본문

SQL

Oracle SQL 함수 정리 : 날짜

뚱인데요? 2022. 3. 29. 19:21
728x90

계정 : sys

테이블 : EMP, DUAL

 

 

1. 세기, 년, 월, 일, 시, 분, 초를 나타내는 내부 숫자인 7 바이트 형식으로 날짜 저장

2. 기본 날짜 표시와 입력 형식은 DD-MM-YY

3. 유효한 오라클 날짜는 기원전 4712 년 1 월 1 일부터 서기 9999 년 12 월 31 일까지이다.

4. 날짜 데이터 타입의 값에 대해 실행되며 숫자를 반환하는 months_between 함수를 제외하고 모든 날짜 함수는 날짜 데이터 타입의 값을 반환

 

- 오라클은 날짜를 숫자로 저장하므로 산술 연산자로 다음과 같이 산술 계산을 할 수 있다.

□ Date + Number 날짜 연산: 일수를 날짜에 더하며 결과는 날짜
 Date + Number / 24 날짜 연산: 24 로 일수를 나누면 시간이 되며 시간을 날짜에 더하며 결과는 날짜
 Date – Number 날짜 연산: 날짜에서 일수를 빼며 결과는 날짜
 Date – Date 날짜 연산: 특정 날짜에서 다른 특정 날짜를 빼며 결과는 일수

 

 

(1) SYSDATE

 

1. 시스템의 현재 날짜를 반환

2. 현재의 오라클 서버 날짜와 시간을 반환

3. 컬럼 이름을 사용하듯이 사용할 수 있다.

 

실습 : dual 테이블에서 시스템의 현재 날짜를 구한다.

SELECT SYSDATE FROM DUAL;

 

 

(2) MONTHS_BETWEEN : MONTHS_BETWEEN(date1, date2)

 

1. date1 과 date2 사이의 월수를 조회한다.

2. months_between 함수의 결과는

date1 이 date2 보다 늦은 날짜면 결과는 양수 / date1 이 date2 보다 앞선 날짜면 결과는 음수

3. months_between 함수의 결과에서 정수가 아닌 부분은 월 일부분을 나타낸다

 

실습 : EMP 테이블에서 입사 날짜와 현재 날짜의 근무 개월 수를 조회한다.

SELECT HIREDATE, SYSDATE, MONTHS_BETWEEN(HIREDATE, SYSDATE) FROM EMP

 

 

(3) ADD_MONTHS : ADD_MONTHS(date, n)

 

date 에 월수 n 을 추가하고 인자인 n 값은 정수여야 하며 음수가 될 수도 있다.

 

실습 : EMP 테이블에서 입사 날짜로부터 5개월이 지난 후의 날짜를 조회한다.

SELECT HIREDATE, SYSDATE, ADD_MONTHS(HIREDATE, 5) FROM EMP

 

 

(4) NEXT_DAY : NEXT_DAY(date, char)

 

1. date 다음에 오는 지정된 요일인 char 의 날짜를 찾는다.

2. char 값은 요일을 나타내는 숫자나 문자열이 될 수 있다.

 

실습 : EMP 테이블에서 입사일로부터 돌아오는 금요일을 조회한다.

SELECT ENAME, HIREDATE, NEXT_DAY(HIREDATE, '금') AS 월 FROM EMP;

 

(5) LAST_DAY : LAST_DAY(date)

 

1. date 에 해당하는 날짜가 있는 월의 말일 날짜를 찾는다.

2. 숫자 함수인 round 함수와 trunc 함수는 날짜 조작에도 사용할 수 있다.

 

실습 1 : EMP 테이블에서 해당 날짜에 대한 월의 말일 날짜를 조회한다.

SELECT ENAME, HIREDATE, LAST_DAY(HIREDATE) AS 월 FROM EMP;

실습 2 : EMP 테이블에서 입사일과 현재 날짜의 근무 개월 수를 반올림하여 조회한다.

SELECT ENAME, HIREDATE, SYSDATE, ROUND(MONTHS_BETWEEN(SYSDATE, HIREDATE)) AS 결과 FROM EMP;

실습 3 : EMP 테이블에서 입사일과 현재 날짜의 근무 개월 수를 절삭하여 조회한다.

SELECT ENAME, HIREDATE, SYSDATE, TRUNC(MONTHS_BETWEEN(SYSDATE, HIREDATE)) AS 절삭 FROM EMP;

 

 

 

 

 

728x90