martes, 24 de julio de 2012
Get old in PostgreSQL
-- select * from fnt_obtener_edad('1986-11-29');
create or replace function fnt_obtener_edad(fecha_nac date)
returns integer as $$
declare
-- Datos de la fecha de nacimiento
ano_nac integer;
mes_nac integer;
dia_nac integer;
-- Datos de la fecha actual
ano_act integer;
mes_act integer;
dia_act integer;
edad integer;
b boolean;
begin
ano_act = extract(year from getdate());
mes_act = extract(month from getdate());
dia_act = extract(day from getdate());
ano_nac = extract(year from fecha_nac);
mes_nac = extract(month from fecha_nac);
dia_nac = extract(day from fecha_nac);
edad = ano_act - ano_nac;
if(mes_act > mes_nac)then
b = true;
else
b = false;
end if;
if(mes_act = mes_nac)then
if(dia_act >= dia_nac)then
b = true;
else
b = false;
end if;
end if;
if(b = true)then
edad = edad;
else
edad = edad - 1;
end if;
return edad;
end;
$$ language plpgsql;
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario