Sie können eine Funktion dafür erstellen:
drop function if exists getIdade;
delimiter |
create function getIdade( data_nascimento datetime )
returns int
begin
declare idade int;
declare ano_atual int;
declare mes_atual int;
declare dia_atual int;
declare ano int;
declare mes int;
declare dia int;
set ano_atual = year(curdate());
set mes_atual = month( curdate());
set dia_atual = day( curdate());
set ano = year( data_nascimento );
set mes = month( data_nascimento );
set dia = day( data_nascimento );
set idade = ano_atual - ano;
if( mes > mes_atual ) then
set idade = idade - 1;
end if;
if( mes = mes_atual and dia > dia_atual ) then
set idade = idade - 1;
end if;
return idade;
end|
delimiter ;
Jetzt können Sie das Alter von einem Datum abrufen:
select getIdade('1983-09-16');
Wenn Ihr Datum im Format Ymd H: i: s vorliegt, können Sie Folgendes tun:
select getIdade(substring_index('1983-09-16 23:43:01', ' ', 1));
Sie können diese Funktion überall wiederverwenden;)
dd-mm-yyyy? Wenn es sich um einendateDatentyp handelt, wird es wahrscheinlich in einem numerischen Format gespeichert (z. B. als Ganzzahl mit Tagen seit einem Startpunkt)