RES: [firebase-br] Operaçoes com Data e Hora (SOLUÇÃO!!)
Denis da Silva Guerra
ministeriokairos em yahoo.com.br
Sáb Jun 18 08:08:32 -03 2005
Pessoal,
Depois de muito quebrar a cabeça, consegui descobrir porquê o select abaixo
não conseguia somar uma hora na hora atual.
Como parece ser uma situação desconhecida pela maioria, resolvi postar aqui
a solução:
select
current_timestamp as HOJE,
cast((current_timestamp + (1/24)) as timestamp) as DEPOIS
from rdb$database
O select acima não funciona porque (1/24) trará um número inteiro, nesse
caso, zero.
O resultado é diferente se eu usar (1.0/24.0) que trará um número real com
uma casa decimal depois da vírgula.
Daí, o select abaixo funciona se for assim:
select
current_timestamp as HOJE,
cast((current_timestamp + (1.000000/24.000000)) as timestamp) as DEPOIS
from rdb$database
Engraçado, não?
Faça os testes:
Select (1 / 24) from rdb$database
Select (1.0 / 24.0) from rdb$database
Select (1.00 / 24.00) from rdb$database
Select (1.000 / 24.000) from rdb$database
Select (1.0000 / 24.0000) from rdb$database
Pelo que parece, essa é uma situação que não consta nas referências do
Interbase nem do Firebird...
[ ]'s
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^
Denis da Silva Guerra
denisdsguerra em gmail.com.br
São José do Vale do Rio Preto - RJ
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^ .
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Denis da Silva Guerra
Enviada em: quinta-feira, 16 de junho de 2005 21:29
Para: 'FireBase'
Assunto: RES: [firebase-br] Operaçoes com Data e Hora
Oi, Eduardo
Mas se fosse um problema do TimeStamp o select abaixo não funcionaria para
soma uma hora...
select
current_timestamp as HOJE,
cast((current_timestamp + (0.4166666) as timestamp) as DEPOIS
from rdb$database
Então, se do jeito acima funciona, por que é que do jeito abaixo não
funciona?
select
current_timestamp as HOJE,
cast((current_timestamp + (1/24)) as timestamp) as DEPOIS
from rdb$database
Qual a diferença???
[ ]'s
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^
Denis da Silva Guerra
denisdsguerra em gmail.com.br
São José do Vale do Rio Preto - RJ
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^ .
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Eduardo Jedliczka
Enviada em: quinta-feira, 16 de junho de 2005 16:35
Para: FireBase
Assunto: Re: [firebase-br] Operaçoes com Data e Hora
O problema é o tipo de dados TimeStamp... se você utilizar o Current_Time,
pode-se incrementá-lo de um em um segundo, ou seja 3600 segundos para
incrementar uma hora...
então teste o select abaixo...
select current_date + (current_time + 3600) as proxima_hora from
rdb$database
[s]
==========================
Eduardo Jedliczka
Gerasoft Informática
Apucarana - Pr
==========================
----- Original Message -----
From: "Denis da Silva Guerra" <ministeriokairos em yahoo.com.br>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Thursday, June 16, 2005 1:35 PM
Subject: [firebase-br] Operaçoes com Data e Hora
>
> Pessoal,
>
> Conforme no livro do amigo Cantu, em Datas e Horas, o Firebird trata cada
> dia com o valor = 1, e suas frações são as horas, minutos e segundos.
>
> Pois bem:
> O seguinte select traz a coluna "AMANHA" corretamente...
>
> select
> current_timestamp as HOJE,
> cast((current_timestamp + 1) as timestamp) as AMANHA
> from rdb$database
>
> Então, se eu quiser somar apenas uma hora na hora atual, divido o dia em
24
> horas e o select seria:
>
> select
> current_timestamp as HOJE,
> cast((current_timestamp + (1/24)) as timestamp) as DEPOIS
> from rdb$database
>
> Só que não funciona.
> A coluna DEPOIS traz exatamente o mesmo valor da coluna HOJE.
>
> Assim, muito menos somar um minuto, o que deveria ser:
>
> select
> current_timestamp as HOJE,
> cast((current_timestamp + ((1/24)/60)) as timestamp) as DEPOIS
> from rdb$database
>
>
> O que pode estar errado?
>
> [ ]'s
>
> ~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^
> Denis da Silva Guerra
> denisdsguerra em gmail.com.br
> São José do Vale do Rio Preto - RJ
> ~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^ .
>
>
> --
> No virus found in this outgoing message.
> Checked by AVG Anti-Virus.
> Version: 7.0.323 / Virus Database: 267.7.3/15 - Release Date: 14/06/2005
>
>
>
>
>
>
> _______________________________________________________
> Yahoo! Acesso Grátis - Internet rápida e grátis.
> Instale o discador agora! http://br.acesso.yahoo.com/
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
--
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.323 / Virus Database: 267.7.3/15 - Release Date: 14/06/2005
--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.323 / Virus Database: 267.7.3/15 - Release Date: 14/06/2005
_______________________________________________________
Yahoo! Acesso Grátis - Internet rápida e grátis.
Instale o discador agora! http://br.acesso.yahoo.com/
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
--
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.323 / Virus Database: 267.7.3/15 - Release Date: 14/06/2005
--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.323 / Virus Database: 267.7.3/15 - Release Date: 14/06/2005
_______________________________________________________
Yahoo! Acesso Grátis - Internet rápida e grátis.
Instale o discador agora! http://br.acesso.yahoo.com/
Mais detalhes sobre a lista de discussão lista