Uzyskaj różnicę w latach między dwiema datami w MySQL jako liczbę całkowitą
Próbuję obliczyć, ile lat ma osoba w bazie danych.
Załóżmy, że mamy tę prostą tabelę:
<code>student(id, birth_date); </code>
Gdzie id jest kluczem podstawowym (naprawdę tabela jest bardziej złożona, ale ją uprościłem).
Chcę wiedzieć, ile lat ma jedna osoba:
<code>select id, datediff(curdate(),birth_date) from student </code>
Zwraca jednak wynik w dniach, a nie w latach. Mogłem go podzielić przez 365:
<code>select id, datediff(curdate(),birth_date) / 365 from student </code>
Ale zwraca wartość zmiennoprzecinkową i chcę liczbę całkowitą.
Więc mógłbym obliczyć lata:
<code>select id, year(curdate())-year(birth_date) from student </code>
Ale jest problem: na przykład teraz jest maj, jeśli wojna na osobę urodzona w czerwcu 1970 roku ma jeszcze 31 lat, a nie 32, ale wyrażenie powraca 32.
Nie mogę wyjść z tego problemu, czy ktoś może mi pomóc?