본문 바로가기
IT/오라클

Oracle Tip #1 : 날짜다루기 기본

by yjacket 2010. 3. 18.

1. 날짜 더하기 빼기

오라클은 SQLServer의 dateAdd 함수가 없다. 대신 + / – 연산자를 이용해 일자를 더하고 뺀다.

select to_date('2009-10-10') - 60 from dual
---------------------------
2009. 8. 11 오전 12:00:00 

또는 add_months(date, n) 함수를 이용해 달을 더하거나 뺀다.

select add_months('2009-10-10', -1) from dual
------------------------------
2009. 9. 10 오전 12:00:00

시간은 ‘날짜 + 숫자/24’ 와 같은 방식으로 더하고 뺀다.

select to_date('2010-03-01') + 1/24 from dual
-----------------------------
2010. 3. 1 오전 1:00:00        

 

2. 날짜간 차이 구하기

오라클은 SQLServer의 dateDiff 함수도 없다. 대신 + / – 연산자를 이용해 일수의 차를 구할 수 있다.

select to_date('2010-03-02') - to_date('2010-03-01') from dual
----------------------------------------------
1                                             

달수 차는 months_between(date, date) 함수를 통해 구한다.

select months_between('2010-03-02', '2009-10-01') from dual
--------------------------------------------
5.03225806451612903225806451612903225806    

정수부분이 달 수의 차이. 비정수부분은 달수 계산하고 남은 나머지 부분이다.

 

3. 기타

LAST_DAY('2010-02-01')   
-------------------------
2010. 2. 28 오전 12:00:00  

ROUND(TO_DATE('2010-02-0111:32:40','YYYY-MM-DDHH24:MI:SS'),'DAY')   
--------------------------------------------------------------------
2010. 1. 31 오전 12:00:00                                

ROUND(TO_DATE('2010-02-0111:32:40','YYYY-MM-DDHH24:MI:SS'),'Q')   
------------------------------------------------------------------
2010. 1. 1 오전 12:00:00

TRUNC(SYSDATE,'MI')    
-----------------------
2010. 3. 18 오후 12:38:00