web-dev-qa-db-fra.com

sqlite select avec condition à la date

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'
48
Thunder

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');
70
Thunder

Utiliser les documents magiques sur le site sqlite :

select * from mytable where dob < date('now','-30 years');
21
My Other Me

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.

5
Yada