Background Image
조회 수 3745 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
○ 테이블 스키마
create table  diff_datetime ( start_datetime  datetime,  end_datetime  datetime  ) ;

○ 테스트 데이타
insert into diff_datetime ( start_datetime,  end_datetime ) values (to_datetime('20160510053140','YYYYMMDDHH24MISS'), to_datetime('20160517165930', 'YYYYMMDDHH24MISS') ) ; 
insert into diff_datetime ( start_datetime,  end_datetime ) values (to_datetime('20160509000510','YYYYMMDDHH24MISS'), to_datetime('20160517090723', 'YYYYMMDDHH24MISS') ) ; 
insert into diff_datetime ( start_datetime,  end_datetime ) values (to_datetime('20160516011258','YYYYMMDDHH24MISS'), to_datetime('20160517203243', 'YYYYMMDDHH24MISS') ) ; 
insert into diff_datetime ( start_datetime,  end_datetime ) values (to_datetime('20160517011258','YYYYMMDDHH24MISS'), to_datetime('20160517203243', 'YYYYMMDDHH24MISS') ) ; 


○ SQL 
select 
      start_datetime
    , end_datetime
    ,  ( end_datetime - start_datetime ) / (1000 * 60 * 60* 24 )   || '일 ' 
     || TO_CHAR(  TO_DATETIME ('00010101000000', 'YYYYMMDDHH24MISS' )    +  ( end_datetime - start_datetime  ), 'HH24:MI:SS' ) AS diff_time   
from  diff_datetime 




○ SQL 실행결과
  start_datetime                 end_datetime                   diff_time
====================================================================================
  05:31:40.000 AM 05/10/2016     04:59:30.000 PM 05/17/2016     '7일 11:27:50'
  12:05:10.000 AM 05/09/2016     09:07:23.000 AM 05/17/2016     '8일 09:02:13'
  01:12:58.000 AM 05/16/2016     08:32:43.000 PM 05/17/2016     '1일 19:19:45'
  01:12:58.000 AM 05/17/2016     08:32:43.000 PM 05/17/2016     '0일 19:19:45'



○ 설명
일 계산은 end_datetime에서 start_datetime을 차감하면 밀리세컨드 결과가 계산 된다.
1일은 1000 밀리세컨드 * 60초 * 60분 * 24시간임으로   ( end_datetime - start_datetime )  / (1000 * 60 * 60* 24 )  으로 계산하면 된다.
참고로 예제 연산 처리순서가 나누기 연산이 더 빠르기 때문에 괄호를 사용하여 연산순서를 조정하였다.

시간 계산 부분은
TO_CHAR 함수의 날짜 포맷을 맞추기 위하여 TO_DATETIME ('00010101000000', 'YYYYMMDDHH24MISS' ) 를 사용하였다.
0001년 1월 1일에 end_datetime - start_datetime 결과를 더한 후에 시간을 추출하였다.

날짜 연산에 대한 출력을 "?일 ?시:?분:?초"로 출력 할 때는 유용한 방법이다.


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
» 질의작성 두 datetime 연산결과를 "?일 ?시:?분:?초"로 표시하기 권호일 2016.05.18 3745
254 운영관리 Invalid XASL tree node content 에러 손승일 2016.04.26 3882
253 질의작성 ORACLE 테이블 및 컬럼 COMMENT 일광등록 스크립트 1 김창휘 2016.04.04 5860
252 응용개발 Windows에서 32bit 버전의 PHP 설치 후 CUBRID와 연동 실패 시 해결 방법 file 진우진 2016.03.28 4049
251 CUBRID 매니저 큐브리드 매니저 호스트 접속 시 JDBC 드라이버 찾을 수 없는 오류 해결 file 진우진 2016.03.28 4899
250 질의작성 스키마 및 인덱스 선언에 따른 최대 용량 산정을 위한 ROW SIZE 확인 성진 2016.03.21 3757
249 질의작성 Oracle UTL_ENCODE.TEXT_ENCODE를 CUBRID로 변환하기 김창휘 2016.03.21 4087
248 질의작성 테이블 리스트 취합 SQL 김창휘 2016.03.19 4475
247 운영관리 산술 연산 결과를 피젯수 또는 젯수의 자리 수에 맞춰 보자. 성진 2016.03.01 4046
246 질의작성 테이블 컬럼 변경 및 추가 정만영 2016.02.29 8956
245 마이그레이션 CMT를 이용하여 원본 특정 테이블의 일부 데이터만 가져와 대상 테이블에 넣기 엄기호 2016.01.28 4262
244 질의작성 FOR UPDATE 정만영 2016.01.27 5233
243 운영관리 'Has been interrupted.' CUBRIDException 발생 주현 2016.01.07 5395
242 질의작성 각 테이블 PK 유무 확인 쿼리문 엄기호 2016.01.01 6829
241 질의작성 ORACLE TRIGGER를 CUBRID TRIGGER로 변환하기 김창휘 2015.12.31 5531
240 응용개발 CUBRID DB에서 critical section 정보 출력하기 file 주현 2015.12.31 4312
239 마이그레이션 MySQL 테이블 크기 조사하기-공유 주현 2015.12.31 4572
238 운영관리 CUBRID BACKUP (linux, window) file 박동윤 2015.12.30 4091
237 질의작성 Cubrid는 어떤 쿼리를 동일한 쿼리로 판단할까? 이상신 2015.12.30 3590
236 운영관리 브로커와 DB 간 연결 테스트 박동윤 2015.12.29 4094
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14

Contact Cubrid

Tel. 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales