Em 11/10/11, Thiago<[email protected]> escreveu:
> On 11/10/2011 09:41, Dickson S. Guedes wrote:
>> Em 11 de outubro de 2011 09:39, Thiago<[email protected]>
>> escreveu:
>>> Pessoal, resolvi colocando a seguinte cláusula no where:
>>>
>>> (TO_CHAR(P.PES_DT_NASCIMENTO,'MM') = TO_CHAR(SYSDATE,'MM') AND
>>> TO_CHAR(P.PES_DT_NASCIMENTO,'DD')>= TO_CHAR(SYSDATE,'DD')) OR
>>>     (TO_CHAR(P.PES_DT_NASCIMENTO,'MM') =
>>> TO_CHAR(ADD_MONTHS(SYSDATE,1),'MM')) OR
>>>     (TO_CHAR(P.PES_DT_NASCIMENTO,'MM') =
>>> TO_CHAR(ADD_MONTHS(SYSDATE,2),'MM'))
>>
>> Quase! Tente usar 'extract'!
>
> Consegui, aqui fica o SQL para que precisar:
>
> SELECT *
> FROM (
> SELECT
>      P.PES_IN_CODIGO,
>      C.COL_IN_CODIGO,
>      P.PES_ST_NOME,
>      TO_CHAR(P.PES_DT_NASCIMENTO,'DD/MM') AS PES_ST_ANIV,
>      CASE
>       WHEN TO_CHAR(P.PES_DT_NASCIMENTO,'MM') < TO_CHAR(SYSDATE,'MM')
> THEN TO_CHAR(ADD_MONTHS(SYSDATE,12),'YYYY') ||
> TO_CHAR(P.PES_DT_NASCIMENTO,'MMDD')
>          ELSE TO_CHAR(SYSDATE,'YYYY') || TO_CHAR(P.PES_DT_NASCIMENTO,'MMDD')
>      END AS PES_ST_ORDEM
> FROM PESSOA P
> LEFT JOIN COLABORADOR C ON P.PES_IN_CODIGO = C.PES_IN_CODIGO
> WHERE
>     (TO_CHAR(P.PES_DT_NASCIMENTO,'MM') = TO_CHAR(SYSDATE,'MM') AND
> TO_CHAR(P.PES_DT_NASCIMENTO,'DD') >= TO_CHAR(SYSDATE,'DD')) OR
>     (TO_CHAR(P.PES_DT_NASCIMENTO,'MM') =
> TO_CHAR(ADD_MONTHS(SYSDATE,1),'MM')) OR
>     (TO_CHAR(P.PES_DT_NASCIMENTO,'MM') =
> TO_CHAR(ADD_MONTHS(SYSDATE,2),'MM')) OR
>     (TO_CHAR(P.PES_DT_NASCIMENTO,'MM') =
> TO_CHAR(ADD_MONTHS(SYSDATE,3),'MM'))
> )
> ORDER BY PES_ST_ORDEM,PES_ST_NOME
>
> Tive que fazer com um subselect para poder ordenar da próxima data em
> diante.
>
> Obrigado a todos pela ajuda!
>


Tente algo do tipo:

SELECT TO_DATE((CASE WHEN TO_CHAR(dt_nascimento, 'MMDD') <
TO_CHAR(CURRENT_DATE, 'MMDD') THEN EXTRACT(year from CURRENT_DATE)+1
ELSE EXTRACT(year from CURRENT_DATE) END)::TEXT ||
TO_CHAR(dt_nascimento, 'MMDD'), 'YYYYMMDD')
BETWEEN CURRENT_DATE AND (CURRENT_DATE+(INTERVAL '3 months'));

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a