J'ai une table sqlite avec date de naissance. Je voudrais exécuter une requête pour sélectionner les enregistrements dont l'âge est supérieur à 30. J'ai essayé ce qui suit mais cela ne fonctionne pas:
select * from mytable where dob > '1/Jan/1980'
select * from mytable where dob > '1980-01-01'
Quelque chose comme ça pourrait être utilisé:
select dateofbirth from customer Where DateofBirth BETWEEN date('1004-01-01') AND date('1980-12-31');
select dateofbirth from customer where date(dateofbirth)>date('1980-12-01');
select * from customer where date(dateofbirth) < date('now','-30 years');
Si vous utilisez Sqlite V3.7.12 ou supérieur
N'utilisez pas date(dateofbirth)
utilisez simplement dateofbirth
. Votre requête devrait donc ressembler à ceci:
select * from customer where dateofbirth < date('now','-30 years');
Utiliser les documents magiques sur le site sqlite :
select * from mytable where dob < date('now','-30 years');
Essayez d'écrire en utilisant le format de date "AAAA-MM-JJ"
select * from mytable where dob > '1980-01-01'
Une manière plus programmée serait quelque chose comme ceci:
select * from mytable where datediff(dob, now()) > 30
Vous devrez trouver une syntaxe spécifique pour sqlite.