[firebase-br] Armazenar uma Data em um campo Concatenado
Eduardo Bahiense
eduardo em icontroller.com.br
Ter Mar 18 22:18:06 -03 2008
Olá Carlos
Embora alguém já tenha respondido sua mensagem original, vou tentar te
ajudar.
Primeiramente, você deve compreender que formatar datas, moedas e
números não é função de servidor, pois eles são feitos para atender à
china hospedado nos EUA, por exemplo.
Bem, entendido isso, agora você precisa compreender que datas,
internamente, são números inteiros, sendo que data/hora são floats, onde
a parte inteira é a data e a parte decimal corresponde às horas,
minutos, segundos e milisegundos. Quando você dá um select e utiliza um
componente qualquer, este utiliza as informações do sistema operacional
para te exibir no formato correto, mas o servidor retornou um nuémero
para ele.
Bem, até aí morreu o Neves. Todo mundo sabe disso. O que as pessoas
parecem não compreender é que quando você pede que ele represente a data
como texto, seja utilizando CAST ou usando concatenação, o FB, que não
se preocupa, por definição, com informações de locale, escolhe o formato
'yyyy-mm-dd' para exibir este núemro em representação de texto.
Agora a coisa fica mais clara. Existem artifícos para se contornar isso.
Um dele é utilizar algumas UDFs que formatam datas. Outra é você se
valer que ele usa o formato 'yyyy-mm-dd' e "trocar as bolas", como no
exemplo abaixo:
SELECT
CURRENT_DATE AS LOCALE_DATE,
CAST(CURRENT_DATE AS VARCHAR(10)) AS FB_TEXT_DATE,
SUBSTRING(CAST(CURRENT_DATE AS VARCHAR(10)) FROM 9 FOR 2)
||'/'||SUBSTRING(CAST(CURRENT_DATE AS VARCHAR(10)) FROM 6 FOR 2)
||'/'||SUBSTRING(CAST(CURRENT_DATE AS VARCHAR(10)) FROM 1 FOR 4)
AS BR_DATE,
CAST(CURRENT_DATE AS VARCHAR(10)) AS FB_DATE
FROM
RDB$DATABASE
Agora com concatenação e com outro separador
SELECT
CURRENT_DATE AS LOCALE_DATE,
''||CURRENT_DATE AS FB_TEXT_DATE,
SUBSTRING(''||CURRENT_DATE FROM 9 FOR 2)
||'.'||SUBSTRING(''||CURRENT_DATE FROM 6 FOR 2)
||'.'||SUBSTRING(''||CURRENT_DATE FROM 1 FOR 4)
AS MY_FMT_DATE
FROM
RDB$DATABASE
Abs, Eduardo
Carlos Andrade escreveu:
> Boa Noite!
>
>
>
> Tenho um campo do tipo “BLOB Text” na minha tabela que armazena
> o histórico de algumas operações. Nesta tabela, os registros são inseridos
> através de Triggers. Só que há um probleminha... Este campo recebe uma DATA
> de outra tabela só que está armazenando de trás para frente, ou seja,
> 2008-03-16. Alguém pode me dizer como resolver isso?
>
>
>
> Obrigado pela disponibilidade de todos!
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista