--차이값 얻기
SELECT TRUNC((TO_TIME - FROM_TIME)*24 * 60) AS DIFF
FROM (
SELECT TO_DATE('201111261212', 'YYYYMMDDHH24MI') TO_TIME
, TO_DATE('201111251212', 'YYYYMMDDHH24MI') FROM_TIME
FROM dual
)
--갯수만큼 구하기
SELECT ROWNUM NUM
FROM DICTIONARY DIC
, (
SELECT TRUNC((TO_TIME - FROM_TIME)*24 * 60) AS DIFF
FROM (
SELECT TO_DATE('201111261212', 'YYYYMMDDHH24MI') TO_TIME
, TO_DATE('201111251212', 'YYYYMMDDHH24MI') FROM_TIME
FROM dual
)
) DIFF
WHERE ROWNUM <= DIFF.DIFF + 1
--그 사이의 시간을 만든다.
SELECT NUM
, FROM_TIME
, TO_TIME
, TO_CHAR(FROM_TIME + (NUM-1)/24/60,'YYYYMMDDHH24MI')
FROM
(
SELECT ROWNUM NUM
, FROM_TIME
, TO_TIME
FROM DICTIONARY DIC
, (
SELECT TRUNC((TO_TIME - FROM_TIME)*24 * 60) AS DIFF
, FROM_TIME
, TO_TIME
FROM (
SELECT TO_DATE('201111261212', 'YYYYMMDDHH24MI') TO_TIME
, TO_DATE('201111251212', 'YYYYMMDDHH24MI') FROM_TIME
FROM dual
)
) DIFF
WHERE ROWNUM <= DIFF.DIFF + 1
)
'Programming > Oracle' 카테고리의 다른 글
오라클 누적합 구하기 (0) | 2011.11.25 |
---|---|
일정 영역의 숫자를 row로 생성하는 오라클(Oracle) 쿼리 (0) | 2011.11.24 |
커서로 반복 작업을 할때에 (0) | 2011.11.17 |
[ORACLE] 컬럼 추가, 수정, 삭제 (0) | 2011.11.17 |
오라클 스케쥴 (0) | 2011.11.14 |
댓글