안녕하세요~
날짜 연산을 아래와 같이 하려고 하는데요...
아래 결과값이 정수값으로 나오거든요...
소수형태의 결과를 받아볼 순 없나요??
select ((SYSTIMESTAMP - TO_TIMESTAMP('2011-feb-20 07:55:49', 'YYYY-Mon-DD HH24:MI:SS')) /3600/24) k
안녕하세요~
날짜 연산을 아래와 같이 하려고 하는데요...
아래 결과값이 정수값으로 나오거든요...
소수형태의 결과를 받아볼 순 없나요??
select ((SYSTIMESTAMP - TO_TIMESTAMP('2011-feb-20 07:55:49', 'YYYY-Mon-DD HH24:MI:SS')) /3600/24) k
답변 감사합니다..
제가 최종적으로 저 쿼리에 Round함수를 사용하려고 하거든요..
select Round(((SYSTIMESTAMP - TO_TIMESTAMP('2011-feb-22 20:22:40', 'YYYY-Mon-DD HH24:MI:SS')) /3600/24.0),2) k
이런식으로 하려고 했는데..
괄호 안에 날짜계산 결과가 수치형값이 아니라서 그런지 Round가 적용되질 않네요... 혹시 방법없을까요??
답변중 조금 보완할 부분이 있어서 덧붙입니다.
정수 / 정수 결과는 정수이기 때문에 소수 형태의 결과를 얻기 위해서는 한쪽 타입이 float 또는 double이 되어야 합니다.
이때 중간 결과의 타입에 따라 결과가 달라질수 있습니다.
만약 SYSTIMESTAMP - TO_TIMESTAMP('2011-feb-20 07:55:49', 'YYYY-Mon-DD HH24:MI:SS') 의 결과가 100000 이라고 가정했을때 나누는 방법에 따라 다음과 같은 결과를 얻을수 있습니다.
select 100000 / 3600 / 24 --> 1
select 100000 / 3600 / 24.0 --> 1.125000000
select 100000 / 3600.0 / 24 --> 1.157407407
select cast(100000 as double) / 3600 / 24 --> 1.157407407407407e+00
아래쪽 두가지가 원하는 결과라고 생각됩니다. 마지막 두가지는 결과 타입이 float인지 double인지에 따라 달라진 것입니다.
원하는 타입으로 명확히 캐스팅해서 사용하는게 낫기 때문에 마지막 방법을 권장해 드리고 싶네요.
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
다음과 같이 하면 될 듯 싶습니다.
select ((SYSTIMESTAMP - TO_TIMESTAMP('2011-feb-20 07:55:49', 'YYYY-Mon-DD HH24:MI:SS')) /3600/24.0) k
마지막에 소수를 나눠주면 결과값도 소수로 나오게 됩니다.