Olá Pessoal,

Aproveitando a oportunidade, vi na Oracle Magazine de janeiro 2012 material
bom sobre trabalhando com datas. Segue o link:

http://www.oracle.com/technetwork/issue-archive/2012/12-jan/o12plsql-1408561.html


Att
Eriovaldo


2012/7/4 Ulisses <usl...@gmail.com>

> **
>
>
> Bom dia!
>
> Muito obrigado André e Chiappa.
>
> Vou seguir o que me ensinaram.
>
> Grato.
>
> Ulisses
>
> _____
>
> De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
> nome de J. Laurindo Chiappa
> Enviada em: terça-feira, 3 de julho de 2012 13:41
> Para: oracle_br@yahoogrupos.com.br
> Assunto: [oracle_br] Re: Subtrair campos TimeStamp
>
>
> Sim, colega, se há uma coisa que vc pode estar Certo na vida de TI são as
> diferenças entre databases, Em Especial para datatypes não completamente
> padronizados ao nível de detalhe como é o caso do TIMESTAMP, sim....
> NO caso do Oracle, o comportamento Documentado é o seguinte : quando vc faz
> a subtração de dois timestamps, o resultado é um string de INTERVAL, que Já
> contém o intervalo de dias, horas, minutos, segundos e fração de segundos
> da
> substração, veja :
>
> SYSTEM@O10GR2::SQL>select to_timestamp('05/07/2012 14:17:20.1000',
> 'dd/mm/yyyy hh24:mi:ss.ff') - to_timestamp('03/07/2012 13:07:10.1000',
> 'dd/mm/yyyy hh24:mi:ss.ff') result from du
> al;
>
> RESULT
> ----------------------------------------------------------
> +000000002 01:10:10.000000000
>
> dois dias, uma hora, 10 minutos e 10 segundos, okdoc ? Então uma
> alternativa
> é vc simplesmente via SUBSTR extrair os valores e para Dias, dividir a
> coluna dias pela qtdade de segundos num dia, a coluna horas, assim por
> diante :
> http://www.databasejournal.com/features/oracle/article.php/2234501
> tem um exemplo, facilmente adaptável pra sua necessiadde ....
>
> Outra que sempre deveria vir á baila quando se fala de extrair é a função
> EXTRACT, exemplo :
>
> SYSTEM@O10GR2::SQL> select
> 2 extract (day from ( to_timestamp('05/07/2012 14:17:20.1000', 'dd/mm/yyyy
> hh24:mi:ss.ff')
> 3 - to_timestamp('03/07/2012 13:07:10.1000', 'dd/mm/yyyy hh24:mi:ss.ff')
> 4 )
> 5 ) *24*60*60
> 6 +
> 7 extract (hour from ( to_timestamp('05/07/2012 14:17:20.1000', 'dd/mm/yyyy
> hh24:mi:ss.ff')
> 8 - to_timestamp('03/07/2012 13:07:10.1000', 'dd/mm/yyyy hh24:mi:ss.ff')
> 9 )
> 10 ) *60*60
> 11 +
> 12 extract (minute from ( to_timestamp('05/07/2012 14:17:20.1000',
> 'dd/mm/yyyy hh24:mi:ss.ff')
> 13 - to_timestamp('03/07/2012 13:07:10.1000', 'dd/mm/yyyy hh24:mi:ss.ff')
> 14 )
> 15 ) *60
> 16 +
> 17 extract (second from ( to_timestamp('05/07/2012 14:17:20.1000',
> 'dd/mm/yyyy hh24:mi:ss.ff')
> 18 - to_timestamp('03/07/2012 13:07:10.1000', 'dd/mm/yyyy hh24:mi:ss.ff')
> 19 )
> 20 )
> 21* qtd_segundos from dual;
>
> QTD_SEGUNDOS
> ------------------
> 177010
>
> SE eu não errei na digitação, é isso aí.... E claro, vc Sempre tem também a
> opção de Transformar (via CAST, provavelmente) em DATE, e aí usar as
> técnicas já tradicionais de manipulação de data no bd Oracle.... Fica a seu
> critério...
>
> []s
>
> Chiappa
>
> --- Em oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br
> >
>
> , "Ulisses" <uslima@...> escreveu
> >
> > Bom dia!
> >
> >
> >
> > Tenho dois campos tipo TimeStamp e necessito calcular a diferença entre
> esse
> > dois campos e converter em Número de Minutos.
> >
> >
> >
> > Diferente de outros bancos de dados que conheço a Query "select
> > campo2-campo1 from TABELA", me retorno uma valor tipo TimeStamp também e,
> > nesse casso, não consigo multiplicar por um número e obter outro número.
> >
> >
> >
> > Como se faz isso no Oracle?
> >
> >
> >
> > Obrigado.
> >
> >
> >
> > Ulisses
> >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
> [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