oracle db timestamp타입 계산 질문 0 3 4,852

by 밍키주니어 [SQL Query] oracle sql 쿼리 [2023.01.23 18:16:35]


timestamp 타입의 컬럼1과 컬럼2가 있습니다.

23/01/02 14:54:23.610000000 이런형태로 저장이 되어있고, 컬럼1과 컬럼2는 무조건 같은 날짜에 다른 시간이 저장 되게끔 해놓았습니다. 컬럼1과 컬럼2의 시간차이를 00h, 00m, 00s 형태로 구하고 싶은데 쿼리문을 어떻게 짜야 하나요?

Mysql에서는 timediff로 쉽게 구해졌는데 oracle database에서는 어떻게 해야하는지 알고싶습니다.

by pajama [2023.01.24 12:40:00]

오라클은 timediff에 해당하는 함수는 없네요. 같은날짜면 아래처럼 하면 될듯합니다.

SELECT 
    to_char(trunc(sysdate) + (DATE1-DATE2), 'HH24') || ':' ||
    to_char(trunc(sysdate) + (DATE1-DATE2), 'MI')   || ':' ||
    to_char(trunc(sysdate) + (DATE1-DATE2), 'SS') 
FROM test

 


by 밍키주니어 [2023.01.24 15:42:59]

감사합니다!


by 마농 [2023.01.25 08:23:09]
WITH t AS
(
SELECT TO_TIMESTAMP('2023/01/02 14:54:23.610', 'yyyy/mm/dd hh24:mi:ss.ff') sdt
     , TO_TIMESTAMP('2023/01/02 16:24:43.830', 'yyyy/mm/dd hh24:mi:ss.ff') edt
  FROM dual
)
SELECT sdt
     , edt
     , TO_CHAR(EXTRACT(hour   FROM edt - sdt), 'fm00') h
     , TO_CHAR(EXTRACT(minute FROM edt - sdt), 'fm00') m
     , TO_CHAR(EXTRACT(second FROM edt - sdt), 'fm00') s
     , SUBSTR(edt - sdt, 12, 8) hms
     , edt - sdt interval_
  FROM t
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입