[firebase-br] RES: Problemas com Data em Coalesce

Wesley Oliveira wesley em rgsystem.com.br
Qui Out 3 16:54:48 -03 2013


Pessoal, acabei de achar uma coisa aqui... Fiquei indignado porque eu já
tinha tentado assim em outros casos e não deu, mas nesse está ok! Hehehe 

Segue:

SELECT CAST(COALESCE(P.CSI_DTPGTO, '30.12.1899') AS DATE) PAGAMENTO
FROM TSI_CPAGAR P
WHERE 1 = 1
ORDER BY P.CSI_VENCIMENTO

Obrigado a todos!

-----Mensagem original-----
De: Wesley Oliveira [mailto:wesley em rgsystem.com.br] 
Enviada em: quinta-feira, 3 de outubro de 2013 16:52
Para: 'FireBase'
Assunto: RES: [firebase-br] Problemas com Data em Coalesce

Por exemplo, se faço assim:

********** CODIGO **********
SELECT COALESCE(P.CSI_DTPGTO, '30.12.1899') PAGAMENTO FROM TSI_CPAGAR P
WHERE 1 = 1 ORDER BY P.CSI_VENCIMENTO
***************************

Os valores nulos retornam '30.12.1899' (zero). Já os que contêm informação,
retornam, por exemplo, '2012-30-04'.

Uma maneira de resolver, seria fazer o select assim:

********** CODIGO **********
SELECT
  COALESCE(EXTRACT(DAY FROM P.CSI_DTPGTO) || '.' || EXTRACT(MONTH FROM
P.CSI_DTPGTO) || '.' ||EXTRACT(YEAR FROM P.CSI_DTPGTO), '30.12.1899')
PAGAMENTO FROM TSI_CPAGAR P WHERE 1 = 1 ORDER BY P.CSI_VENCIMENTO
***************************

Mas eu acho isso horrível visualmente, então queria saber se tem outra
solução! =]

Obrigado!!

-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Vilmar Diogo
Enviada em: quinta-feira, 3 de outubro de 2013 16:34
Para: FireBase
Assunto: Re: [firebase-br] Problemas com Data em Coalesce

Wesley, como você esta usando o COALESCE nestes campos datas? Post um
exemplo seu ai !


Em 3 de outubro de 2013 16:24, Wesley Oliveira
<wesley em rgsystem.com.br>escreveu:

> Pessoal,
>
>
>
> Eu faço consultar no banco de dados usando TDBXCommand no delphi e 
> alguns campos que são nulos, eu preciso dar um COALESCE pra não ficar 
> trazendo lixo. Com Strings e Inteiros, funciona normalmente, mas 
> quando o campo é Date é que dá dor de cabeça.
>
>
>
> Seja o campo do tipo DATE ou SQLTIMESTAMP, toda vez que eu uso o 
> COALESCE, o retorno da consulta traz pra mim a data no formato 
> YYYY-MM-DD, e não no DD.MM.YYYY normal.
>
> Isso tanto no Delphi quanto no próprio IB Expert...
>
>
>
> Alguém sabe como fazer pra trazer sempre no formato DD.MM.YYYY, sem 
> precisar ficar usando SUBSTRING e EXTRACT?
>
>
>
> Valeu!
>
> Att.
>
> Wesley Oliveira
>
> Programador de Sistemas
>
> ______________________________________________
> 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
>



--
Vilmar Diogo
MCI Sistemas
Analista Programador
69 9960-1483
______________________________________________
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