web-dev-qa-db-ja.com

日付の条件でsqlite select

生年月日を含むsqliteテーブルがあります。クエリを実行して、年齢が30歳以上のレコードを選択したいと思います。次を試してみましたが、うまくいきません。

select * from mytable where dob > '1/Jan/1980'
select * from mytable where dob > '1980-01-01'
48
Thunder

次のようなものを使用できます。

_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');
_

Sqlite V3.7.12以降を使用している場合

date(dateofbirth)を使用しないでくださいdateofbirthを使用してください。したがって、クエリは次のようになります。

_select * from customer where dateofbirth < date('now','-30 years');
_
70
Thunder

sqlite Webサイト でマジックドキュメントを使用する:

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

日付形式「YYYY-MM-DD」を使用して記述してみてください

select * from mytable where dob > '1980-01-01'

よりプログラム的な方法は、次のようなものです。

select * from mytable where datediff(dob, now()) > 30

Sqliteの特定の構文を見つける必要があります。

5
Yada