오라클(Oracle) SQL에서
두 날짜(일시) 사이의 일, 시, 분을 구하려고
검색, 포탈 사이트를 뒤지는데,
긁어다가 바로 쓸수 있게 친절하게 설명되어 있는 자료를 찾지 못하여,
나 같은 사람에게 편리성을 제공하기 위해 샘플을 만들어 놓습니다.
일하는데 작은 도움이라도 되기를 바라며...
-------------------------------------------------------------------
(1) 기능 설명
- 두 날짜 사이의 시간차이를 일, 시, 분으로 구하기
※ 오라클의 날짜 계산이 정확하게 안되어 floor()를 사용하여 분의 소숫점 이하를 버림
(2) 샘플 데이타 설명
- 시작일자 : StartDate('20090101 12:30') - Date Type
- 종료일자 : EndDate('20091001 17:20') - Date Type
(3) 결과
-------------------------------------------------------
일 시간 분
-------------------------------------------------------
273 4 50
-------------------------------------------------------
(4) 실행 SQL
-------------------------------------------------------------------------------------
SELECT
TRUNC(EndDate - StartDate) as "일",
TRUNC(((EndDate - StartDate) - TRUNC(EndDate - StartDate)) * 24) as "시간",
FLOOR(((((EndDate - StartDate) -TRUNC(EndDate - StartDate)) * 24)
- TRUNC(((EndDate - StartDate)-TRUNC(EndDate - StartDate)) * 24)) * 60) as "분"
FROM (
SELECT TO_DATE('20090101 12:30','yyyymmdd hh24:mi') as StartDate, -- 시작일
TO_DATE('20091001 17:20','yyyymmdd hh24:mi') as EndDate -- 종료일
FROM DUAL
)
-------------------------------------------------------------------------------------