ORACLE 시간/일/월별 통계쿼리
fromDate, toDate의 값을 받아 월별통계쿼리입니다.
SELECT TO_CHAR(ADD_MONTHS(TO_DATE(#{fromDate}, 'YYYY-MM'),(LEVEL - 1)),'YYYY-MM') AS START_TIME, TO_CHAR(ADD_MONTHS(TO_DATE(#{fromDate}, 'YYYY-MM'),(LEVEL)),'YYYY-MM') AS END_TIME FROM DUAL CONNECT BY ADD_MONTHS(TO_DATE(#{fromDate}, 'YYYY-MM'),(LEVEL - 1)) <= TO_DATE(#{toDate}, 'YYYY-MM') | cs |
fromData, toDate의 값을 받아 일별통계쿼리입니다.
SELECT TO_CHAR(TO_DATE(#{fromDate}, 'YYYY-MM-DD') + LEVEL - 1, 'YYYY-MM-DD') AS START_TIME, TO_CHAR(TO_DATE(#{fromDate}, 'YYYY-MM-DD') + LEVEL, 'YYYY-MM-DD') AS END_TIME FROM DUAL CONNECT BY LEVEL <![CDATA[<=]]> TO_DATE(#{toDate}, 'YYYY-MM-DD') - TO_DATE(#{fromDate}, 'YYYY-MM-DD') + 1 | cs |
fromData, toDate의 값을 받아 시간별통계쿼리입니다.
SELECT TO_CHAR(STA_DT,'YYYY-MM-DD HH24:MI') AS START_TIME, TO_CHAR(END_DT,'YYYY-MM-DD HH24:MI') AS END_TIME FROM ( SELECT TO_DATE(#{fromDate}, 'YYYY-MM-DD HH24:MI') +((LEVEL-1)) /24 STA_DT, TO_DATE(#{fromDate}, 'YYYY-MM-DD HH24:MI') +((LEVEL)) /24 END_DT FROM DUAL CONNECT BY LEVEL <![CDATA[<=]]> FLOOR((TO_DATE(#{toDate},'YYYY-MM-DD HH24:MI') -TO_DATE(#{fromDate},'YYYY-MM-DD HH24:MI'))*24) + 1 ) | cs |
'STUDY > SQL' 카테고리의 다른 글
LTRIM, RTRIM, TRIM (0) | 2018.02.23 |
---|---|
REPLACE (0) | 2018.02.23 |
REGEXP_SUBSTR (0) | 2018.02.22 |
SYS_CONNECT_BY_PATH (0) | 2018.02.22 |
MySQL DATE 날짜 형식 바꾸기 (0) | 2018.01.31 |