IT 개발

[오라클|Oracle] 날짜타입 가지고 놀기 - TO_DATE, TO_CHAR

쭈니루 2014. 7. 2. 01:00
반응형
 
오라클 Oracle 날짜타입 가지고 놀기

 

 

쿼리를 수행하다 보면, 날짜와 관련된 정보를 조회하거나 변경해야 하는 경우가 상당히 많습니다.

 

오늘은 이런 경우 날짜 타입에 대한 사용법 몇 가지를 알아보겠습니다.

 

 

 

 기본적으로 SYSDATE를 가져오는 쿼리 입니다.

 

 

SELECT SYSDATE FROM DUAL

 

 

   SYSDATE
 1  
2013/12/24 09:59:57

 

 

 DATE 타입을 CHAR 타입으로 변경하는 방법입니다.

 

SELECT TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') SYS_DATE24 FROM DUAL

 

   SYS_DATE24
 1  
20131224130309

 

※ 12시간제로 가져와야 할 경우, 'YYYYMMDDHH12MISS' 로 변경해서 쓰시면 됩니다.

 

SELECT TO_CHAR(SYSDATE, 'YYYYMMDDHH12MISS') SYS_DATE12 FROM DUAL

 

   SYS_DATE12
 1  
20131224010309

 

 CHAR 타입을 DATE 타입으로 변경하는 방법입니다.

 

SELECT TO_DATE('20131224133159', 'YYYYMMDDHH24MISS') SYS_DATE FROM DUAL

 

 

   SYS_DATE
 1  
2013/12/24 13:31:59

 

 날짜 형식의 일부만 가져오는 방법입니다.

 

 

 

 우선 년을 가져오기 입니다.
  

 

SELECT TO_CHAR(SYSDATE, 'YYYY') SYS_YEAR4 FROM DUAL

 

   SYS_YEAR4
 1  
2013

 

SELECT TO_CHAR(SYSDATE, 'YY') SYS_YEAR2 FROM DUAL

 

   SYS_YEAR2
 1  
13

 

 다음으로는 월(MONTH)과 분(MINUTE)의 구분입니다.
  

 

SELECT TO_CHAR(SYSDATE, 'MM') SYS_MONTH FROM DUAL

 

   SYS_MONTH
 1  
12

 

SELECT TO_CHAR(SYSDATE, 'MI') SYS_MINUTE FROM DUAL

 

   SYS_MINUTE
 1  
10

 

 시간을 가져오는 쿼리 입니다.   

 

SELECT TO_CHAR(SYSDATE, 'HH24') SYS_TIME24 FROM DUAL

 

   SYS_TIME24
 1  
13

 

※ 12시간제가 필요하신 경우 24를 12로 변경해 주시면 됩니다.

 

SELECT TO_CHAR(SYSDATE, 'HH12') SYS_TIME12 FROM DUAL

 

 

   SYS_TIME12
 1  
01

 

 

 

 날짜에 시간을 더하고 빼는 방법입니다.

 

  SELECT SYSDATE - 1 M_DAY FROM DUAL 

 

 

 

여기서의 -1은 1DAY 즉, 하루를 빼는 것입니다.

 

 

 SELECT SYSDATE - (1/24) M_TIME FROM DUAL             ☞ 시간
 SELECT SYSDATE - (1/1440) M_MINUTE FROM DUAL      ☞ 분
 SELECT SYSDATE - (1/86400) M_SECOND FROM DUAL   ☞ 초

 

 

 

이렇게 계산하시면 됩니다.

 

 

 

 

 

만약 초의 소수점까지 계산하는 방법을 알고싶으시면...

[오라클|Oracle]시간타입 소수점까지 제어하기 - TO_TIMESTAMP ☜ 포스트에서 확인해 보세요

 

 

 

반응형