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

W O sistemas2000profesional em gmail.com
Sex Jan 31 00:38:09 -03 2014


Un año es bisiesto si:

a) es divisible por 4
b) si termina con 00, los dos primeros dígitos también deben ser divisibles
por 4

1900 no fue bisiesto (porque 19 no es divisible por 4)
2000 sí fue bisiesto (porque 20 es divisible por 4)
2011 no fue bisiesto (porque no es divisible por 4)
2012 sí fue bisiesto (porque sí es divisible por 4)
2013 no fue bisiesto (porque no es divisible por 4)
2014 no es bisiesto (porque no es divisible por 4)
2015 no será bisiesto (porque no es divisible por 4)
2016 sí será bisiesto (porque es divisible por 4)
2100 no será bisiesto (porque 21 no es divisible por 4)

Saludos.

Walter.



2014-01-30 Frederico Godoi <frederico.godoi em gmail.com>:

> 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
> ______________________________________________
> 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