2012. 3. 13. 12:25
출처 : 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
다시 그걸 아래와 같이 계산하면 되겠죠?
일 = 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하면 시간이 된다.
-----------------------------------------------------------------------------------------------------
응용해서 써보기
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하면 시간이 된다.
'Oracle > SQL' 카테고리의 다른 글
DEAD SESSION 정리(sqlnet.ora에 expire_time 설정) (0) | 2012.04.23 |
---|---|
[오라클] 토드 사용시 ORA-06550 / PLS-00103 오류 (1) | 2012.03.28 |
sqlplus 방향키 안될 때 적용 파일 (0) | 2011.08.22 |
Linux 오라클 사용 10g - 서비스 시작, 명령어 (0) | 2011.08.22 |
OPTIMIZER - PLAN TABLE 생성 과정 (Oracle 10g) (0) | 2011.08.10 |