У меня есть sqlite таблица с Датой рождения. Я хотел бы выполнить запрос для выбора тех записей, где возраст - больше чем 30. Я попробовал следующее, но это не работает:
select * from mytable where dob > '1/Jan/1980'
select * from mytable where dob > '1980-01-01'
Можно использовать что-то вроде этого:
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');
Попробуйте писать, используя формат даты 'YYYY-MM-DD'
select * from mytable where dob > '1980-01-01'
Более программный способ был бы примерно таким:
select * from mytable where datediff(dob, now()) > 30
Вам потребуется найти специфический синтаксис для sqlite.
Используя волшебную документацию на сайте sqlite:
select * from mytable where dob < date('now','-30 years');