Study

[Oracle/오라클] 숫자 처리 함수 / 날짜 처리 함수

_유니 2022. 12. 29. 19:27

 

 

숫자 처리 함수

 

- ABS : 인자로 전달받은 숫자의 절대값 반환

작성법 - ABS(NUMBER)

 

SELECT ABS(-10)
FROM DUAL; 
// 10

SELECT ABS(-5.7)
FROM DUAL; 
// 5.7

 

 

 

- MOD : 인자로 전달받은 숫자를 나누어 나머지 반환

작성법 - MOD(NUMBER, DIVISION)

 

* DIVISION : 나눌 수 혹은 나눌 숫자 데이터 컬럼

 

SELECT MOD(10, 3)
FROM DUAL; 
// 1

SELECT MOD(10.9, 3)
FROM DUAL;
// 1.9

 

 

 

- ROUND : 인자로 전달받은 숫자 혹은 컬럼에서 지정한 위치부터 반올림하여 값 반환

작성법 - ROUND(NUMBER, [POSITION])

 

* POSITION : 반올림할 위치(생략 시 기본 값 0)

 

SELECT ROUND(123.456)
FROM DUAL; 
// 123

SELECT ROUND(123.456, 1)
FROM DUAL;
// 123.5

SELECT ROUND(123.456, 5) 
FROM DUAL; 
// 123.456
// 위치보다 큰 수 입력시 그대로 나옴

SELECT ROUND(123.456, -2)
FROM DUAL; 
// 100

 

 

 

- FLOOR : 인자로 전달받은 숫자 혹은 컬럼에서 소수점 자리의 수를 버림 후 반환

작성법 - FLOOR(NUMBER)

 

SELECT FLOOR(123.952)
FROM DUAL; 
// 123

 

 

 

- TRUNC : 인자로 전달받은 숫자 혹은 컬럼에서 지정한 위치부터 소수점 자리의 수를 버리고 반환

작성법 - TRUNC(NUMBER, POSITION)

 

* POSITION : 버릴 위치(생략 시 기본 값 0)

 

SELECT TRUNC(123.456) 
FROM DUAL; 
// 123
// 위치 지정 안하면 FLOOR이랑 동일함

SELECT TRUNC(123.456, 1) 
FROM DUAL;
// 123.4

SELECT TRUNC(123.456, -1) 
FROM DUAL; 
// 120

 

 

 

- CEIL : 인자로 전달받은 숫자 혹은 컬럼을 올림 후 반환

작성법 - CEIL(NUMBER)

 

SELECT CEIL(123.152) 
FROM DUAL; 
// 124

 

 

 

 

날짜 처리 함수 

- SYSDATE : 시스템이 저장되어 있는 현재 날짜 및 시간 반환

 

SELECT SYSDATE 
FROM DUAL;

 

 

 

- MONTHS_BETWEEN : 인자로 날짜 두 개를 전달받아 개월 수 차이를 숫자 데이터형으로 반환

작성법 - MONTHS_BETWEEN(DATE1, DATE2)

 

// 사원들의 입사일, 근무 개월 수 조회
SELECT HIRE_DATE, 
CEIL(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)) || '개월' AS "근무개월수"
FROM EMPLOYEE;

 

 

 

- ADD_MONTHS : 인자로 전달받은 날짜에 인자로 받은 숫자만큼 개월 수를 더하여 특정 날짜 반환

작성법 - ADD_MONTHS(DATE, NUMBER)

 

// 사원들의 입사일, 입사 후 6개월이 된 날짜 조회
SELECT HIRE_DATE, ADD_MONTHS(HIRE_DATE, 6)
FROM EMPLOYEE;

 

 

 

- NEXT_DAY : 인자로 전달받은 날짜에 인자로 받은 요일이 가장 가까운 날짜 반환

작성법 - NEXT_DAY (DATE, STRING [OR NUMBER])

 

* STRING[OR NUMBER] : 구하려는 요일 (숫자의 경우 1 = 일요일, ...., 7 = 토요일)

 

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

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

SELECT SYSDATE, NEXT_DAY(SYSDATE, 6)
FROM DUAL;

 

 

 

- LAST_DAY : 인자로 전달받은 날짜가 속한 달의 마지막 날짜 반환

작성법 - LAST_DAY (DATE)

 

SELECT LAST_DAY(SYSDATE)
FROM DUAL;

// 22/12/31

 

 

 

- EXTRACT : 년, 월, 일 정보 추출하여 반환

작성법 - EXTRACT(YEAR FROM DATE), EXTRACT(MONTH FROM DATE), EXTRACT(DAY FROM DATE)

 

// 사원들의 입사 년, 입사 월, 입사 일 조회
SELECT  
EXTRACT(YEAR FROM HIRE_DATE) || '년' AS "입사년도", 
EXTRACT(MONTH FROM HIRE_DATE) || '월' AS "입사월", 
EXTRACT(DAY FROM HIRE_DATE) || '일' AS "입사일"
FROM EMPLOYEE;