오늘은 몰랐으면 내일은 알면 된다
22-11-08 (1) 오라클 함수 - 숫자 함수, 날짜 함수 본문
[숫자 함수]
[특정 위치에서 반올림 ROUND]
ROUND([숫자(필수)], [반올림 위치(선택)])
반올림 위치를 지정하지 않으면 소수점 첫 번째 자리에서 반올림한다.
SELECT ROUND(1234.5678),
ROUND(1234.5678, 0),
ROUND(1234.5678,1),
ROUND(1234.5678,2),
ROUND(1234.5678,-1),
ROUND(1234.5678, -2)
FROM DUAL;

[특정 위치에서 버림 TRUNC]
TRUNC([숫자(필수)], [반올림 위치(선택)])
반올림 위치를 지정하지 않으면 소수점 첫 번째 자리에서 버린다.
SELECT TRUNC(1234.5678),
TRUNC(1234.5678, 0),
TRUNC(1234.5678,1),
TRUNC(1234.5678,2),
TRUNC(1234.5678,-1),
TRUNC(1234.5678, -2)
FROM DUAL;

[올림, 내림 CEIL, FLOOR]
: 입력된 숫자와 가까운 큰 정수, 작은 정수를 반환한다.
CEIL([숫자(필수)])
FLOOR([숫자(필수)])
SELECT CEIL(3.14),
FLOOR(3.14),
CEIL(-3.14),
FLOOR(-3.14)
FROM DUAL;

[나머지 MOD]
MOD([나눠질 숫자(필수)], [나눌 숫자(필수)])
SELECT MOD(15,6),
MOD(10,2),
MOD(11,2)
FROM DUAL;

[날짜 함수]
| 연산 | 설명 |
| 날짜 데이터 + 숫자 | 날짜 데이터보다 숫자만큼 일수 이후의 날짜 |
| 날짜 데이터 - 숫자 | 날짜 데이터보다 숫자만큼 일수 이전의 날짜 |
| 날짜 데이터 - 날짜 데이터 | 두 날짜 데이터 간의 일수 차이 |
| 날짜 데이터 + 날짜 데이터 | 지원하지 않음 |
SELECT SYSDATE AS 오늘,
SYSDATE-1 AS 어제,
SYSDATE+1 AS 내일
FROM DUAL;

[몇 개월 이후 날짜 ADD_MONTHS]
ADD_MONTHS([날짜 데이터(필수)], [더할 개월 수(정수)(필수)])
SELECT SYSDATE,
ADD_MONTHS(SYSDATE,3)
FROM DUAL;

윤년 등의 이유로 날짜 계산이 복잡해 질 수 있는데, 10주년 등의 년 계산을 120개월의 월 계산으로 바꿈으로써 계산을 좀 더 간단하게 바꿀 수 있다.
[두 날짜 간의 개월 수 차이 MONTHS_BETWEEN]
MONTHS_BETWEEN([날짜 데이터1(필수)], [날짜 데이터2(필수)])
SELECT FIRST_NAME, SYSDATE,
TRUNC(MONTHS_BETWEEN(HIRE_DATE, SYSDATE), 4),
TRUNC(MONTHS_BETWEEN(SYSDATE, HIRE_DATE), 4),
TRUNC(MONTHS_BETWEEN(SYSDATE, HIRE_DATE))
FROM EMPLOYEES;

비교 날짜의 위치에 따라 양수 또는 음수가 나올 수 있다.
[돌아오는 요일 NEXT_DAY, 달의 마지막 날짜 LAST_DAY]
NEXT_DAY([날짜 데이터(필수)], [요일 문자(필수)])
NEXT_DAY는 입력한 날짜 데이터에서 돌아오는 요일의 날짜를 반환한다.
LAST_DAY([날짜 데이터(필수)])
LAST_DAY는 해당 날짜가 속한 달의 마지막 날짜를 반환한다.
작성하고 있는 지금 날짜는 11월 8일이다. 확인해보자.

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

'Java > JAVA 개발자 양성과정' 카테고리의 다른 글
| 2022-11-08 (3) 정규 표현식(Regular Expression) (0) | 2022.11.08 |
|---|---|
| 2022-11-08 (2) 오라클 함수 - 형 변환 함수, NULL 처리 함수, CASE/DECODE (0) | 2022.11.08 |
| 2022-11-07 (4) 오라클 함수 - 문자 함수 (0) | 2022.11.07 |
| 2022-11-07 (3) SELECT, 연산자 (0) | 2022.11.07 |
| 2022-11-07 (2) 문자열 클래스 (0) | 2022.11.07 |