출처 : http://choi0c.tistory.com/5


DATE - DATE는 일(DAY)로 계산 되어지며
기본적으로 날짜로 표시되기 때문에
다시 그걸 아래와 같이 계산하면 되겠죠?
일 = 24시간 = 24 * 60분 = 24* 60분 * 60초의 공식을 대입

시간: (A-B) * 24
분 : (A-B) * 24 * 60
초 : (A-B) * 24 * 60 * 60

예)
일로 계산
select sysdate - to_date('2011-02-14 오전 7:46:16', 'yyyy-mm-dd am hh:mi:ss') as newdate from dual;
----------------
NEWDATE
8.03563657407407407407407407407407407407



시간으로 계산
select (sysdate - to_date('2011-02-14 오전 7:46:16', 'yyyy-mm-dd am hh:mi:ss'))*24 as newdate from dual;
----------------
NEWDATE
192.891944444444444444444444444444444444



분으로 계산
select (sysdate - to_date('2011-02-14 오전 7:46:16', 'yyyy-mm-dd am hh:mi:ss'))*24*60 as newdate from dual;
----------------
NEWDATE
11575.5833333333333333333333333333333333


소수점은 round를 써서 처리~

-----------------------------------------------------------------------------------------------------
응용해서 써보기
SELECT --B.*    
     , to_char( B.Frst_regist_pnttm, 'YYYY-MM-DD HH:MM:SS' ) AS 입력일
     , to_char( B.Last_updt_pnttm, 'YYYY-MM-DD HH:MM:SS' ) AS 완료일
     , ( B.Last_updt_pnttm - B.Frst_regist_pnttm ) AS 날짜차이
  --, B.Frst_regist_pnttm
  FROM Test1 B
 WHERE to_char( B.Frst_regist_pnttm, 'YYYYMMDD' ) BETWEEN '20100000'
                                                      AND '20110000'
       AND B.Cnvrs_sttemnt_se IS NOT NULL
       AND B.Cnvrs_sttemnt_se IN ('4')
       AND B.Delete_at = 'N'
       AND B.Cnvrs_de IS NOT NULL;

여기서 날짜차이*24 하면 시간, 날짜차이*24*60하면 시간이 된다.



Posted by 나른한스누피