오라클(Oracle) 날짜형과 변환형 함수(LAST_DAY, MONTHS_BETWEEN, ADD_MONTHS, TO_DATE, TO_CHAR) 사용 방법

오라클(Oracle) 날짜형과 변환형 함수(LAST_DAY, MONTHS_BETWEEN, ADD_MONTHS, TO_DATE, TO_CHAR) 사용 방법

이번 오라클 강좌 시간은 스칼러 함수를 이어서 진행해보도록 하겠습니다.
스컬러 함수는 보통 컬럼 하나에서 값을 조회하거나 변경해서 사용하는데요.
문자 데이터 타입을 날짜타입으로 변경하거나, 숫자나, 문자로 변경해서 사용할 수 있습니다.
그리고 일반적으로 많이 사용되는 날짜형함수는 ,오늘 날짜, 마지막달 날짜, 시작일을 구하는 방법도 알아보도록 하겠습니다.

먼저 날짜함수의 종류 입니다.


1. SYSDATE 함수

지금 현재 시간을 조회하는 함수 입니다. 시간 포맷은 oracle에 셋팅된 기본 컬쳐값을 사용합니다.
어떤 오라클에서는 YY/MM/DD 이거나 MM/DD/YY 이기도 합니다.

 

조회하면 바로 결과가 나옵니다.

>>  SELECT SYSDATE FROM DUAL;

오라클(Oracle) 날짜형과 변환형 함수(LAST_DAY, MONTHS_BETWEEN, ADD_MONTHS, TO_DATE, TO_CHAR) 사용 방법


 

2. LAST_DAY 함수

지정된 달의 마지막 날짜값을 가져 옵니다.

사용 방법은 LAST_DAY(날짜) 입니다.


 

쿼리를 실행해서 확인해보겠습니다.
시간값이 포함되어 있으면 시간이 포한된 마지막 날짜를 가져오고
시간이 없고 날짜만 있으면 해당 날짜의 마지막날을 가져 옵니다.

>>  SELECT LAST_DAY(SYSDATE)
       ,LAST_DAY('2019-06-18')
  FROM DUAL;

달의 처음 날짜를 가져오는 함수는 없는데요 가져오는 방법은
함수를 2개 사용해야 하기 때문에 관련된 함수를 배운 뒤에 알려드리겠습니다.


마지막 날짜값을 가져 옵니다.

 



3. MONTHS_BETWEEN 함수
두 날짜의 차이를 알려주는 함수 입니다.
사용방법은 MONTHS_BETWEEN(날짜1,날짜2) 입니다.

MONTHS_BETWEEN 함수


 

쿼리를 통해 알아보겠습니다.

>> SELECT MONTHS_BETWEEN('2019-06-18','2019-04-19')
      , MONTHS_BETWEEN('2019-04-18','2019-06-19')
  FROM DUAL;

결과값을 보면 첫번째 값은 1.96일이 나온는데요.
두 날짜의 치이가 1.96달이 차이난다는 겁니다.

두번째 컬럼의 결과값을 보면 -가 붙었는데요. 뒤가 날짜가 나중날짜인 경우 -1가 나옵니다.
날짜1 - 날짜2 로 계산되기 때문입니다.

 날자가 나중날짜인 경우


 

4. ADD_MONTHS 함수
주어날 달에 지정된 수의 달을 더하는 함수 입니다.
사용 방법을 알아보겠습니다. 


 
4. ADD_MONTHS 함수


 

쿼리를 실행해서 결과를 알아보겠습니다.

>> SELECT ADD_MONTHS('2019-06-18',2)
       ,ADD_MONTHS('2019-06-18',-2)
  FROM DUAL;

첫번째 컬럼에 날짜를 입력 후 2를 넣어 2달을 더해봤습니다.
결과는 6월의 2달 뒤인 2019-08월로 나옵니다.

지정달수값을 -를 넣으면 달을 빼줍니다.
두번재 컬럼에 -2를 넣고 실행한 결과값을 보면 2달 전인 4월로 조회되는것을 확인할 수 있습니다.

지정된 수의 달을 더하는 함수


 

5. TO_CHAR 함수
TO_CHAR 함수는 값을 지정된 형식 또는 문자값으로 변환해주는 함수 입니다.
사용 방법은 TO_CHAR(문자값,  형식) 이며 형식은 생략할 수 있으며 생략 시 주어진 값을 문자타입으로 변경합니다.

5. TO_CHAR 함수


 

쿼리를 실행해보겠습니다.

>>SELECT TO_CHAR(SYSDATE)
        ,TO_CHAR(SYSDATE,'YYYY-MM-DD')
        ,TO_CHAR(1)
        ,TO_CHAR(4.598)
  FROM DUAL;

첫번째 컬럼은 오늘 날짜는 조회하는 함수를 TO_CHAR함수를 적용해서
문자타입으로 조회됩니다.
두번째 컬럼은 형식을 지정해서 조회되도록 적용했습니다.
결과는 YYYY-MM-DD 형식으로 조회 됩니다.
세번째 컬럼은 숫자형 1을 문자타입으로 변경했습니다.
네번째는 실수형 4.598을 문자형으로 하면 값은 그대로 문자형으로 변경됩니다.

값을 지정된 형식 또는 문자값으로 변환해주는 함수


 

통화단위로도 변경할 수 있는데요 형식값에 L999,999,999 식으로 넣으면 통화단위로 적용됩니다.

통화단위로도 변경할


 

6. 그럼 달의 첫날짜를 가져오는 방법 알아보겠습니다.
   TO_DATE 와 TO_CHAR 함수를 함께 사용해야 하는데요.
   아래와 같이  조회하시면 됩니다.


 >> SELECT TO_DATE(TO_CHAR(SYSDATE,'YYYYMM'),'YYYYMM')
  FROM DUAL;


이상 오라클(Oracle) 날짜형과 변환형 함수(LAST_DAY, MONTHS_BETWEEN,ADD_MONTHS, TO_DATE, TO_CHAR) 사용 방법을 알아보았습니다.