"오라클 시간계산"의 두 판 사이의 차이
DB CAFE
(→이전행/다음행 소요시간) |
|||
67번째 줄: | 67번째 줄: | ||
REGION_NAME, | REGION_NAME, | ||
REG_DATE, | REG_DATE, | ||
− | LAG(REG_DATE) OVER (ORDER BY REG_DATE) PREV_REG_DATE -- | + | LAG(REG_DATE) OVER (ORDER BY REG_DATE) PREV_REG_DATE -- 이전행 등록일자(시간순으로 등록된), |
-- LAG(REGION_NAME) OVER (ORDER BY REGION_ID) 이전행NAME | -- LAG(REGION_NAME) OVER (ORDER BY REGION_ID) 이전행NAME | ||
FROM EMP | FROM EMP |
2021년 4월 17일 (토) 16:04 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 시간계산[편집]
1.1 시간 계산[편집]
SELECT '현재 시각 : ' || TO_CHAR(SYSDATE, 'yyyymmdd hh24:mi:ss') AS "D,T,M,S 계산하기"
FROM DUAL
UNION ALL
SELECT ' 1일 전 : ' || TO_CHAR(SYSDATE - 1, 'yyyymmdd hh24:mi:ss') FROM DUAL
UNION ALL
SELECT '현재 시각 : ' || TO_CHAR(SYSDATE, 'yyyymmdd hh24:mi:ss') AS "D,T,M,S 계산하기"
FROM DUAL
UNION ALL
SELECT ' 5일 전 : ' || TO_CHAR(SYSDATE - 5, 'yyyymmdd hh24:mi:ss') FROM DUAL
UNION ALL
SELECT '현재 시각 : ' || TO_CHAR(SYSDATE, 'yyyymmdd hh24:mi:ss') AS "D,T,M,S 계산하기"
FROM DUAL
UNION ALL
SELECT ' 1시간 전 : ' || TO_CHAR(SYSDATE - 1/24, 'yyyymmdd hh24:mi:ss') FROM DUAL
UNION ALL
SELECT '현재 시각 : ' || TO_CHAR(SYSDATE, 'yyyymmdd hh24:mi:ss') AS "D,T,M,S 계산하기"
FROM DUAL
UNION ALL
SELECT ' 5시간 전 : ' || TO_CHAR(SYSDATE - 5/24, 'yyyymmdd hh24:mi:ss') FROM DUAL
UNION ALL
SELECT '현재 시각 : ' || TO_CHAR(SYSDATE, 'yyyymmdd hh24:mi:ss') AS "D,T,M,S 계산하기"
FROM DUAL
UNION ALL
SELECT ' 1분 전 : ' || TO_CHAR(SYSDATE - 1/(24*60), 'yyyymmdd hh24:mi:ss') FROM DUAL
UNION ALL
SELECT '현재 시각 : ' || TO_CHAR(SYSDATE, 'yyyymmdd hh24:mi:ss') AS "D,T,M,S 계산하기"
FROM DUAL
UNION ALL
SELECT ' 5분 전 : ' || TO_CHAR(SYSDATE - 5/(24*60), 'yyyymmdd hh24:mi:ss') FROM DUAL;
1.1.1 소요시간[편집]
- to_date() * 24 * 60 * 60 = 초 (계산된값)
-- 해당쿼리가 실행 소요시간 조회
SELECT min(first_refresh_time)
, max(last_refresh_time)
, (to_date(to_char(max(last_refresh_time),'hh24miss'),'hh24miss') -
to_date(to_char(min(first_refresh_time),'hh24miss'),'hh24miss')
) * (24*60) AS "소요시간(m)"
FROM V$SQL_MONITOR
WHERE SQL_ID = 'awxb9gjc12tdj' -- ''
1.2 이전행/다음행 소요시간[편집]
SELECT A.*
, ROUND(REG_DATE - PREV_REG_DATE * (24*60),1) "소요시간(M)"
FROM (
SELECT REGION_ID,
REGION_NAME,
REG_DATE,
LAG(REG_DATE) OVER (ORDER BY REG_DATE) PREV_REG_DATE -- 이전행 등록일자(시간순으로 등록된),
-- LAG(REGION_NAME) OVER (ORDER BY REGION_ID) 이전행NAME
FROM EMP
ORDER BY REG_DATE
) A.