Pois é, Ricardo! Eu tinha entendido que do dia 3 as 12:20 até o dia 04 as 09:10, é menos do que um dia - e portanto seria cobrada uma "diária". Mas depois de ler novamente o primeiro e-mail dele, realmente ele disse que o "esperado" é 2.
Nesse caso, acho que a solução seria simplesmente truncar as duas datas (eliminar o horário, deixar somente dia/mês/ano), fazer a diferença das datas e então somar 1 ao final da conta. É por isso que lá no início desta thread eu pedi pro colga que postou a dúvida paea especificar melhor a regra que ele quer, mas infelizmente ele não fez isso e tampouco voltou aqui na lista para nos responder. Sinceramente fico chateado quando alguém aparece pedindo ajuda e depois ignora o trabalho que os colegas tiveram pra tentar ajudar o sujeito, mas tudo bem, pode ser que ele não tenha tido tempo ainda pra ler as respostas por aqui. On Fri, Feb 24, 2012 at 5:19 PM, Ricardo Tajiri <rhtaj...@gmail.com> wrote: > 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]