Calcular o Último Dia do Mês

19 01 2009

Introdução

Precisava calcular quantos anos uma pessoa teria no último dia do mês.  Para calcular a idade em função de uma outra data basta fazer o seguinte:

select extract(year FROM age(current_date,to_date('01/01/2000','DD/MM/YYYY')))

A Função

O Problema todo estava em obter o último dia do mês, infelizmente o postgres não disponibiliza uma função nativa para fazer isso, então, vamos lá

create or replace function last_day(date) returns date as 'select 
cast(date_trunc(''month'', $1) + ''1 month''::interval as date) - 1' 
language sql;

Exemplo de uso:

select 
extract(year FROM age(last_day(current_date), pss_nascimento))
from pessoa

Com isso você sabe quantos anos terá o cidadão no último dia do mês corrente.

OBS:  Quem me ajudou a achar a função foi o alexandre.

[]’s Anselmo Battisti

Anúncios

Ações

Information

3 responses

19 01 2009
Luís Miguel Silva

Boa dica :o)

3 05 2009
Regis Zang

Muito bom sua dica , me ajudou muito!
Obrigado!

23 10 2014
Julio Pacheco

Eu fiz isso… 😀

select ((to_char(now()::date, ‘YYYY-MM’)||’-01′)::date + interval ‘1 month’) – interval ‘1 sec’;
?column?
———————
2014-10-31 23:59:59
(1 row)

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: