시간계산 쿼리 돌려보다 질문입니다. 0 3 2,986

by 김선호 [2008.01.09 23:34:19]


밑에 있는 q&a에서 찾아 돌려보던중

select TRUNC(SYSDATE,'dd'), SYSDATE , TRUNC(SYSDATE,'dd')+21/24 , TRUNC(SYSDATE,'dd') + 21/24 - SYSDATE from dual

실행해보니

 

01/09/2008 00:00:00

01/09/2008 23:24:50 

01/09/2008 21:00:00 

-.1005787037037037037037037037037037037

 

이란 결과가 나왔습니다.

여기서

-.1005787037037037037037037037037037037

의 뜻이 뭔지 궁금합니다.

select (TO_DATE('2350','HH24MI') - TO_DATE(TO_CHAR(SYSDATE,'HH24MISS'),'HH24MISS')),
(TO_DATE('2350','HH24MI') - TO_DATE(TO_CHAR(SYSDATE,'HH24MISS'),'HH24MISS')) * 3600 * 24,
TO_DATE((TO_DATE('2350','HH24MI') - TO_DATE(TO_CHAR(SYSDATE,'HH24MISS'),'HH24MISS')) * 3600 * 24,'SSSSS')
 from dual
돌려보면

.015706018518518518518518518518518518519 

1357 

01/01/2008 00:22:37

이렇게 되는데 'SSSSS' 이것의 용도가 sysdate의 년도만 기준으로 초를 계산한게 맞는지 궁금합니다.

 

date에서 date를 빼면 일수가 나온다고 알고 잇었는데, 위 쿼리에선 다르게 나오는군요.시간 계산시엔 달라지는건가....

많은 가르침 부탁드립니다~

by 구름 [2008.01.10 00:00:00]
trunc(sysdate) - sysdate 해보세요.

24시간 기준으로 현재 시간으로 나눈값이 나오게 됩니다.
다른것도 마찬가지지요.. 산수니깐 한번 해보세요.

by 마농 [2008.01.10 00:00:00]
날짜간의 차이연산 결과는 일수가 나옵니다.
아래 답변을 다 보지 못하신 모양이군요.
결과 * 24 * 60 * 60 을 해서 초로 환산해드렸었는데요.
일수가 나온것 맞구요. 1일 이하는 소수로 나올것이고 작은날짜에서 큰날짜를 빼면 음수가 나오지요.
산수랑 똑같아요 차근차근 접근해 보세요.

by 김선호 [2008.01.10 00:00:00]
아. 0.6666666 이렇게 나오는 결과값이 0.6666666일 그러니까 하루(24시간)를 1로 환산했을때 현재 시간을 나타내는 것이군요. 감사합니다!
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입