DataBase/Oracle

5. Oracle 날짜 함수

유가엘 2020. 3. 25. 19:28

4_DATE_FUNCTION.sql
0.00MB

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;