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 ans. 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'
Une chose comme celle-ci pourrait être utilisée:
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
Ne pas utiliser la date(dateofbirth)
juste utiliser la date de dateofbirth
. Donc, votre requête ressemblerait à ceci:
select * from customer where dateofbirth < date('now','-30 years');
Utiliser les documents magiques sur le site Web de 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.