안녕하세요 기요밍 입니다.

Oracle을 사용하다보면 날짜를 변환하거나 현재 시간에서 연산을 통해 특정 시간을 구하는 경우가 많습니다. 대부분의 데이터들은 생성된 시간이 중요한 의미를 갖기 때문일 겁니다.

 

이번 포스팅에서는 현재 시간을 구하고, 다른 타입으로 변환하고!! 함수 or 연산자를 통해 다른시간으로 변경하는 방법에 대해서 알아보겠습니다.

 

 

1. 현재시간 구하기

 

현재 시간은 SYSDATE, SYSTIMESTAMP 함수를 통해 알 수 있습니다. 비교할 또는 Insert 할 테이블의 컬럼에 맞춰 사용해주시는게 좋습니다. Oracle 내부적으로 형변환을 해줘 문제는 발생하지 않지만 그만큼 리소스를 사용하는 거니까요..

 

▼ 사용 법

 SELECT SYSDATE FROM DUAL;

 SELECT SYSTIMESTAMP FROM DAUL;

 

 

2. 시간 계산하기

 

시간에 +/- 연산자를 사용해 시간 변경을 할 수 있습니다. 1이 하루를 의미 합니다. 예를들면 현재날짜 + 1을하면 24시간이 더해는거고, -1을하면 24시간이 차감 됩니다. 이를 이용해 SYSDATE - 1/24, SYSTIMRSTAMP + 1/24/60과 같이 원하는 시간을 더할 수 있습니다.

 

▼ 시간변환 사용 예 

 SELECT SYSDATE + 1 FROM DUAL;

 SELECT * FROM TEST_TABLE WHERE CREATE_TIME > SYSDATE - 1/24;

 

 

3. 날짜함수 사용하기

 

오라클 날짜함수에는 ADD_MONTHS, LAST_DAY, NEXT_DAY, MONTHS_BEETWEEN 등이 있습니다.

 

▼ 각 함수별 사용법

 ADD_MONTHS : 개월수를 더해줍니다.

 SELECT ADD_MONTH(SYSDATE, 3) FROM DUAL; → 현재시간에 4개월이 더해져 반환 됩니다.

 

 LAST_DAY : 해당 월의 마지막 날짜가 반환 됩니다.

 SELECT LAST_DAY(SYSDATE) FROM DUAL; → 현재 월의 마지막 날짜가 리턴 됩니다.

 

 NEXT_DAY : 해당 일자를 기준으로 지정한 요일의 날짜를 리턴 합니다.

 SELECT NEXT_DAY(SYSDAT, 'SUN') FROM DUAL; → 현재 이후의 가장빠른 일요일의 날짜를 리턴 합니다.

 

 MONTHS_BEETWEEN : 두 날짜의 차이를 개월수로 리턴 합니다.

 SELECT MONTHS_BEETWEEN(SYSDATE, STSDATE-30) FROM DUAL; → 리턴되는 결과를 연산하여 날짜/시간 단위로 변경이 가능 합니다.

 

 

4. 날짜 형변환 하기

 

TO_CHAR, TO_DATE, TO_TIMESTAMP등의 함수를 이용하여 형변환 할 수 있습니다.

 

▼ 형변환 함수 사용 법

 SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
 SELECT TO_DATE('20151007000000','YYYYMMDDHH24MISS') FROM DUAL;
 SELECT TO_TIMESTAMP('20151007000000','YYYYMMDDHH24MISS') FROM DUAL;

 

 

[결 론]

날짜 관련 함수와 연산 기능은 데이터 트레이스 및 개발을 진행하면서 정말 많이 사용 되므로!! 익혀두면 유용하게 사용하실 일이 많을 겁니다.

블로그 이미지

기요밍b

IT와 게임 블로그 입니다!!^^

,