sqlite выбирают с условием в дату

У меня есть sqlite таблица с Датой рождения. Я хотел бы выполнить запрос для выбора тех записей, где возраст - больше чем 30. Я попробовал следующее, но это не работает:

select * from mytable where dob > '1/Jan/1980'
select * from mytable where dob > '1980-01-01'
48
задан isync 18 April 2016 в 04:53
поделиться

3 ответа

Можно использовать что-то вроде этого:

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');
71
ответ дан 7 November 2019 в 12:26
поделиться

Попробуйте писать, используя формат даты 'YYYY-MM-DD'

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

Более программный способ был бы примерно таким:

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

Вам потребуется найти специфический синтаксис для sqlite.

4
ответ дан 7 November 2019 в 12:26
поделиться

Используя волшебную документацию на сайте sqlite:

select * from mytable where dob < date('now','-30 years');
21
ответ дан 7 November 2019 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: