본문 바로가기

IT Logs/DB

[Oracle]현재시간-(DATE타입) 시간차 구하는 쿼리


시간을 구하는 쿼리의  Column Type은 DATE 타입입니다.
아래의 예는 Column Type이 TIMESTAMP일때 변환하여 사용합니다.

SELECT
    ROUND(((SYSDATE - TO_DATE(TO_CHAR(START_TIME, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS'))),3)  AS DIFF
FROM TEMP_TABLE T
WHERE T.NAME = '1';

Column Type이 DATE 타입이면( START_TIME => DATE)
SELECT
   ROUND(((SYSDATE - START_TIME))),3) AS DIFF
FROM TEMP_TABLE T
WHERE T.NAME = '1';

구해지는 시간차는 DATE(일)이며

시간(HOUR)을 구할 경우는
SELECT
    ROUND(((SYSDATE - TO_DATE(TO_CHAR(START_TIME, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS'))*24),3)  AS DIFF
FROM TEMP_TABLE T
WHERE T.NAME = '1';

분(MINUTE)을 구할 경우는
SELECT
    ROUND(((SYSDATE - TO_DATE(TO_CHAR(START_TIME, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS'))*24*60),3)  AS DIFF
FROM TEMP_TABLE T
WHERE T.NAME = '1';

초(SECOND)를 구할 경우는
SELECT
    ROUND(((SYSDATE - TO_DATE(TO_CHAR(START_TIME, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS'))*24*60*60),3)  AS DIFF
FROM TEMP_TABLE T
WHERE T.NAME = '1';

쿼리상에서 시간차를 구하기 위해서는 예시들과 같은 쿼리를 사용합니다.
DATE 타입의 쿼리일때도 해당 단위만큼 시간을 곱합니다.