[Oracle/오라클] 숫자 처리 함수 / 날짜 처리 함수
숫자 처리 함수
- 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;