Background Image
조회 수 3421 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
273 질의작성 JAVA_SP를 이용해서 정규표현식을 이용해서 치환을 하자. file 성진 2017.10.10 41
272 운영관리 윈도우 OS에서 java sp 사용 시 Java VM is not running 해결 방법 정훈 2017.09.04 59
271 질의작성 테이블 명세서 쿼리 1 성진 2017.08.04 260
270 질의작성 loose index scan을 활용한 효과적인 쿼리 튜닝 방안 박세훈 2017.06.01 641
269 운영관리 CUBRID 8.2.2 ~ 8.4.x 버전에서 'ALTER SERIAL ... CACHE <cached_num> / NOCACHE' ERROR 해결 방법 주영진 2017.03.08 1201
268 질의작성 CONNECT BY 절 포함 질의 튜닝 예제 박세훈 2017.02.28 1634
267 질의작성 UPDATE에서 조인을 통해, 결과값 수정하는 방법 박동윤 2016.12.27 1812
266 질의작성 subquery를 이용한 튜닝예제 file 김창휘 2016.12.27 1909
265 기타 Oracle import 시 character set 변경관련 김창휘 2016.12.26 2002
264 기타 JBoss 사용 시 statement pooling 설정 손승일 2016.12.16 1388
263 기타 Tomcat's JDBC Pool 사용 시 JNDI DataSource 설정 손승일 2016.12.16 1704
262 응용개발 CUBRID 와 DBCP의 관계 엄기호 2016.12.14 1198
261 질의작성 입력된 년월 또는 두개의 날짜을 이용하여 달력 및 주차 구하기 1 성진 2016.08.10 3395
260 운영관리 큐브리드 포트 정리 정만영 2016.07.05 3528
259 운영관리 큐브리드 마스터 소켓 디렉토리 변경방법 정만영 2016.07.05 3455
258 응용개발 Windows 환경에서 JAVA SP 사용 utf-8 한글 깨짐 해결 file 손승일 2016.07.01 3378
257 질의작성 INSTR함수 사용하기 엄기호 2016.06.29 4329
256 질의작성 group_concat(문자열 그룹처리) 함수 사용하기 권호일 2016.06.29 3706
» 질의작성 두 datetime 연산결과를 "?일 ?시:?분:?초"로 표시하기 권호일 2016.05.18 3421
254 운영관리 Invalid XASL tree node content 에러 손승일 2016.04.26 3806
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