Se for pensar, a função CEIL não vai adiantar. Se aplicar nas 6 datas do
exemplo do Marcos, com os resultados desejados, já da pra
perceber o problema.

Em relação ao exemplo do ROUND, também vai dar problema caso o numero de
horas restantes pra completar um dia, depois da
subtração, seja igual ou maior do que 12 horas (metade de um dia)...

Tudo isso pensando no resultado como um todo e não somente no exemplo de
ter entrada e saída no mesmo dia...

Acho que uma forma de resolver por completo esse problema seja usando trunc
nas datas antes de fazer a diferença, e depois somar mais
um. Ou outras variações como somar mais um à data de saída antes de fazer a
diferença.

with tabela as (
select to_date('01/02/2012 07:00:00','dd/mm/yyyy hh24:mi:ss') data_entrada,
to_date('03/02/2012 12:20:00','dd/mm/yyyy hh24:mi:ss') data_saida, 3
nr_esperado from dual
union all
select to_date('03/02/2012 12:20:01','dd/mm/yyyy hh24:mi:ss'),
to_date('04/02/2012 09:10:00','dd/mm/yyyy hh24:mi:ss'), 2 from dual
union all
select to_date('04/02/2012 09:10:00','dd/mm/yyyy hh24:mi:ss'),
to_date('04/02/2012 16:20:00','dd/mm/yyyy hh24:mi:ss'), 1 from dual)
select nr_esperado, trunc(data_saida+1) - trunc(data_entrada) nr_obtido
from tabela;

NR_ESPERADO            NR_OBTIDO
---------------------- ----------------------
3                      3
2                      2
1                      1


Ricardo Hideyuki Tajiri
LaRCom - FEEC - UNICAMP


Em 24 de fevereiro de 2012 11:56, CLEYDSON BORGES <cleydsonbsan...@gmail.com
> escreveu:

> **
>
>
> Verdade Milton! Acabei esquecendo desse detalhe. Usando a Função Ceil
> funciona direitinho.
>
> SELECT
> CEIL(TO_DATE('04/02/2012 23:20:00','DD/MM/YYYY HH24:MI:SS')-
> TO_DATE('04/02/2012 09:10:00','DD/MM/YYYY HH24:MI:SS')) RESULT
> FROM DUAL
>
> Abraço.
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



------------------------------------

--------------------------------------------------------------------------------------------------------------------------
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  
------------------------------------------------------------------------------------------------------------------------
 Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    oracle_br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a