Vish! Não entedi nads!
O certo é retornar 1 mesmo!

*SELECT
 (TO_DATE('04/02/2012 09:10:00','DD/MM/YYYY HH24:MI:SS')-
 TO_DATE('03/02/2012  12:20:01','DD/MM/YYYY HH24:MI:SS')) RESULT
 FROM DUAL
=0,8680439814814814814814814814814814814815*

* SELECT
 CEIL(TO_DATE('04/02/2012 09:10:00','DD/MM/YYYY HH24:MI:SS')-
 TO_DATE('03/02/2012  12:20:01','DD/MM/YYYY HH24:MI:SS')) RESULT
 FROM DUAL
 =1*

Uma diária (24 horas) e 5 minutos a mais = 2 diárias
* SELECT
 CEIL(TO_DATE('04/02/2012 12:25:00','DD/MM/YYYY HH24:MI:SS')-
 TO_DATE('03/02/2012  12:20:01','DD/MM/YYYY HH24:MI:SS')) RESULT
 FROM DUAL
=2*

Como vou colocar "2" diárias se nao passou nenhuma direito?

Ow Marcos, explica melhor a regra de negócio ai!

Em 24 de fevereiro de 2012 17:19, Ricardo Tajiri <rhtaj...@gmail.com>escreveu:

> Oi Milton,
>
> Com o CEIL, no terceiro exemplo do Marcos,ele vai retornar 1, que é o que
> ele espera e precisa que seja retornado.
> Mas não podemos nos ater somente a este exemplo, pois ele nos passou mais
> outros dois que exemplificam melhor
> a nacessidade real dele. Então, se você imaginar a utilização do CEIL no
> segundo exemplo dele, com datas
> '03/02/2012  12:20:01' e '04/02/2012  09:10:00', ele espera que o valor
> retornado seja 2 (coluna qtde_dias_setor).
>
> O problema aí é que '04/02/2012 09:10:00' - '03/02/2012 12:20:01' < 1. Isso
> porque a diferença, apesar de
> já não ser a mesma data, não completa um dia por causa das horas. Então o
> retorno usando a função CEIL
> nesta diferença é 1 e não 2 como esperado pelo Marcos.
>
>
> Ricardo Hideyuki Tajiri
> LaRCom - FEEC - UNICAMP
>
>
> Em 24 de fevereiro de 2012 15:30, Milton Bastos Henriquis Jr. <
> miltonbas...@gmail.com> escreveu:
>
> > **
> >
> >
> > Ricardo, não entendi o motivo de não funcionar o CEIL.
> >
> > Poderia explicar ou então passar um exemplo prático desta função "não
> > funcionando" em um caso do colega?
> >
> >
> > On Fri, Feb 24, 2012 at 1:17 PM, Ricardo Tajiri <rhtaj...@gmail.com>
> > wrote:
> >
> > > 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
> > >
> > >
> > >
> >
> > [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
>
>
>


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

Responder a