[firebase-br] Select que monta o ano na condição(erro em ano bissexto)

Frederico Godoi frederico.godoi em gmail.com
Qui Jan 30 18:05:37 -03 2014


Marco, pra testar ano Bissexto teria que testar o resta da divisão do ano
por 4.
Agora para essa finalidade, acho que não é o caso, precisa trazer o dia de
volta para 28 para retornar certo, eu acho.

Veja essa sugestão, vai precisar ajustar, claro

SELECT C.CODCONTATO,
       COALESCE(C.NOMEFANTASIA,C.RAZAOSOCIAL) AS NOME,
       COALESCE(C.TELEFONE,C.TELEFONE2, C.TELEFONE3, C.CELULAR, 'SEM
TELEFONE CADASTRADO') AS TELEFONE,
       C.DTAFUNDACAO,
       C.DTANASC
  FROM CONTATOS C
 WHERE C.DTANASC IS NOT NULL
  AND  IIF(EXTRACT(DAY FROM C.DTANASC)||'-'||EXTRACT(MONTH FROM C.DTANASC)
<> '29-02',
           CAST(
                EXTRACT(YEAR FROM CURRENT_DATE) || '-' ||
                EXTRACT(MONTH FROM C.DTANASC) || '-' ||
                EXTRACT(DAY FROM C.DTANASC) AS DATE
                ) BETWEEN  CURRENT_DATE AND CURRENT_DATE+5 ),
           CAST(
                EXTRACT(YEAR FROM CURRENT_DATE) || '-' ||
                EXTRACT(MONTH FROM C.DTANASC) || '-' ||
                EXTRACT(DAY FROM C.DTANASC)-1 AS DATE
                ) BETWEEN  CURRENT_DATE AND CURRENT_DATE+5 )
           )
  AND C.JURIDICA_FISICA = 'F'
  AND C.SITUACAO = 'A'


Abs

Frederico Godoi

2014-01-30 Marco Aurélio <marco.istccp em gmail.com>:

> Salve pessoal,
> o select é o seguinte:
>
> SELECT
>   C.CODCONTATO,
>   COALESCE(C.NOMEFANTASIA,C.RAZAOSOCIAL) AS NOME,
>   COALESCE(C.TELEFONE,C.TELEFONE2, C.TELEFONE3, C.CELULAR, 'SEM
> TELEFONE CADASTRADO') AS TELEFONE,
>   C.DTAFUNDACAO,
>   C.DTANASC
>  FROM
>   CONTATOS C WHERE
>   C.DTANASC IS NOT NULL
>
>   AND   CAST(
>             EXTRACT(YEAR FROM CURRENT_DATE) || '-' ||
>             EXTRACT(MONTH FROM C.DTANASC) || '-' ||
>             EXTRACT(DAY FROM C.DTANASC) AS DATE
>         )
>
>   BETWEEN  CURRENT_DATE AND (CURRENT_DATE + CAST(' +
> PARAMETRO(__DIAS_ANTECEDENCIA_AVISAR_ANIVESARIANTES,'0') + 'AS
> INTEGER))
>
>   AND C.JURIDICA_FISICA = 'F'
>   AND C.SITUACAO = 'A'
>
> Depois de muito tempo, e de muitos usuários cadastrados, apareceu
> alguém com a data de aniversário 29/02,
> Como posso fazer para tratar o ano bissexto nesta consulta?
> (provavelmente vou ter de montar outra mesmo).
>
> Obrigado,
> Marco
> ______________________________________________
> 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
>



-- 
Frederico Godoi



Mais detalhes sobre a lista de discussão lista