0
votes

Laravel où la clause d'âge

J'ai un modèle d'étudiant et il a des propriétés telles que Full_Name, Datate de naissance, ...
Date de naissance est une colonne type de date.

Comment puis-je filtrer mes étudiants et trouver ces étudiants de plus de 20 ans? P>

Quelque chose comme: p>

$students = Student::whereAge('birthdate', '>=', 20)->get();


1 commentaires

Stockez-vous Âge en tant que numéro? Ou juste la date de naissance? En outre, la 2e réponse ici montre comment calculer "l'âge" à partir d'une colonne Timeestamp: Stackoverflow.com/a/51654439/3965631


3 Réponses :


1
votes

Utilisation de SQL RAW:

$students = Student::whereRaw('TIMESTAMPDIFF(YEAR, birthdate, CURDATE()) >= 20'); 


0 commentaires

1
votes

Vous pouvez supprimer -20 années à partir de la date d'aujourd'hui, puis comparez-la à la date de naissance. Comme: XXX

Permettez-moi de savoir si cela a aidé.


0 commentaires

2
votes

Vous ne pouvez pas utiliser whereage comme Âge devrait être une colonne qui existe dans votre base de données dans ce cas.

Vous pouvez essayer cela à la place: < Pré> xxx

Encore mieux peut-être comparer la date exacte il y a 20 ans: xxx


0 commentaires