일자, 시간, 분, 초 계산하기

시간 계산 방법


일자 계산 = DateTime - 1            = 1일 전
                                      (예: 5일 전 = DateTime - 5)
시간 계산 = DateTime - 1/24         = 1시간 전 [24 = 24시간]
                                      (예: 5시간 전 = DateTime - 5/24)
분 계산   = DateTime - 1/(24*60)    = 1분 전 [24 = 24시간, 60 = 60분]
                                      (예: 5분 전 = DateTime - 5/(24*60))
초 계산   = DateTime - 1/(24*60*60) = 1초 전 [24 = 24시간, 60 = 60분, 60 = 60초]
                                      (예: 5초 전 = DateTime - 5/(24*60*60))


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;


D,T,M,S 계산하기                 
-----------------------------
현재 시각 : 20131106 18:02:59    
   1일 전 : 20131105 18:02:59  
현재 시각 : 20131106 18:02:59    
   5일 전 : 20131101 18:02:59  
현재 시각 : 20131106 18:02:59    
 1시간 전 : 20131106 17:02:59   
현재 시각 : 20131106 18:02:59    
 5시간 전 : 20131106 13:02:59   
현재 시각 : 20131106 18:02:59    
   1분 전 : 20131106 18:01:59  
현재 시각 : 20131106 18:02:59    
   5분 전 : 20131106 17:57:59 

  • 조회 예

현재 시간 : 2011년 12월 28일 14시 00분
퇴근 시간 : 2011년 12월 28일 18시 00분

퇴근까지 남은 시간을 초로 계산한다면?


SELECT ( TO_DATE('20111228180000','yyyymmddhh24miss') -
         TO_DATE('20111228140000','yyyymmddhh24miss') ) * (24*60*60) AS RemainSecond
FROM DUAL;

REMAINSECOND
------------
       14400