SQL met geboortedatum

Status
Niet open voor verdere reacties.

tuning4you

Gebruiker
Lid geworden
3 jun 2007
Berichten
328
Ik heb een tabel met geboortedatums en wens iedereen weer te geven die ouder is dan 25 jaar.
In eerste instantie gebruikten we:
select * from table where datepart(year, getdate()) - datepart(year, birthdate) >= 25
In bovenvermelde SQL merkten we op dat de personen die dit jaar 25 worden ook weergegeven worden, dit is niet de bedoeling.

Volgende sql werd dan:
select * from table DATEDIFF(month, birthdate, getdate())/12 >=25
Hier merken we op dat personen die bijvoorbeeld morgen 25 jaar worden ook worden weergegeven.

Iemand een idee hoe ik via SQL alleen de personen kan weergeven die al 25 jaar zijn???
 
Laatst bewerkt:
Ik snap het verband tussen de 25 en de 75 jaar worden niet?
Bedoel je wellicht 25??
 
Oplossing
"SELECT afdeling, avg( floor(datediff(dd, Gbdatum,getdate())/365) )as gem_leeftijd
from Medewerker
group by Afdeling
having Afdeling> 1"
hier is een voorbeeld van mij kijk alleen de de 1ste rij aaaaaaaUUUUUUUUbbbbbbbb:confused:
mvg
FARESc#
 
toch nog maar antwoorden, omdat hij op de eerste pagina staat.

Je zou kunnen gebruik maken van de DATE_SUB functie dus
Code:
... WHERE birthdate < DATE_SUB(NOW(), INTERVAL '25' YEAR)
waarbij je dus kijkt of de geboortedatum voor de datum preies 25 jaar geleden was. (dus waarschijnlijk wil je <= gebruiken, omdat je ook iedereen wil dit vandaag jarig is. Dan moet je wel een DATE type voor je database veld hebben gebruikt en niet een DATETIME, maar dat denk ik niet)
of andersom dan

Code:
... WHERE DATE_ADD(birthdate, INTERVAL '25' YEAR) < NOW()

oftewel of de 25e verjaardag al geweest is (ook weer <= waarschijnlijk)
 
De query die ik neerzette draait tegen een mysql database, ik weet niet wat jij gebruikt, maar dan zou ik des betreffende documentatie naar overeenkomende functies kunnen zoeken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan