SYSDATE()
현재 날짜를 출력할 수 있습니다.
SELECT SYSDATE FROM DUAL;
MONTHS_BETWEEN(A,B)
A와 B사이의 개월 수를 출력할 수 있습니다.
SELECT FIRST_NAME,LAST_NAME,MONTHS_BETWEEN(SYSDATE,HIRE_dATE) FROM EMPLOYEES WHERE DEPARTMENT_ID = 50;
-- DEPARTMENT_ID 가 50인 인원의 현재 시간부터 고용일까지의 개월 수를 출력 할 수 있습니다.
ADD_MONTHS()
개월 수를 더 해줄 수 있습니다.
SELECT ADD_MONTHS(SYSDATE,7)FROM DUAL;
NEXT_DAY()
다가올 요일에 대해 일자를 출력합니다.
SELECT NEXT_DAY(SYSDATE,'일요일')FROM DUAL;
LAST_DATE()
해당 달에 마지막 일자를 출력해 줍니다.
SELECT LAT_DAY(SYSDATE)FROM DUAL;
TO_CHAR()
DATE 타입을 문자타입을 변환해주면서 형식을 지정할 수 있습니다.
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD')FROM DUAL;
TO_DATE()
문자타입을 DATE타입을 변환해주면서 형식을 지정할 수 있습니다.
SELECT TO_DATE('2020/03/25','YYYY/MM/DD')FROM DUAL;
NVL()
NULL 값을 다른 데이터로 변경하는 함수입니다.
SELECT FIRST_NAME, LAST_NAME, NVL(COMMISSION_PCT,0) COMMISSION FROM EMPLOYEES;
DECODE()
JAVA의 SWITCH 구문과 비슷하게 작동되며 A에는 기준 값 이후 키값과 VALUE값을 입력합니다.
SELECT DEPARTMENT_ID, DECODE(DEPARTMENT_ID, 20, '마케팅부서', 60, 'IT부서', 90, '경영지원부서', '기타부서') FROM EMPLOYEES;
CASE()
DECODE와 비슷한 역활을 하며 좀 더 가독성이 좋습니다.
SELECT FIRST_NAME, DEPARTMENT_ID, CASE WHEN DEPARTMENT_ID = 20 THEN '마케팅부서'
WHEN DEPARTMENT_ID = 60 THEN 'IT부서'
WHEN DEPARTMENT_ID = 90 THEN '경영지원부서'
ELSE '기타부서' END "부서명"
FROM EMPLOYEES;
'DataBase > Oracle' 카테고리의 다른 글
7. Oracle 조인 (0) | 2020.03.26 |
---|---|
6. Oracle GroupBy, Having 절 (0) | 2020.03.25 |
4. Oracle 문자열 함수 (0) | 2020.03.25 |
3. Oracle 집계함수, 숫자함수 (0) | 2020.03.25 |
2. Oracle Select (0) | 2020.03.25 |