Подтвердить что ты не робот

Sqlite select с условием на дату

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

select * from mytable where dob > '1/Jan/1980'
select * from mytable where dob > '1980-01-01'
4b9b3361

Ответ 1

Можно использовать такую ​​вещь:

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

Ответ 2

Использование магических документов на веб-сайте sqlite:

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

Ответ 3

Попробуйте написать с использованием формата даты "ГГГГ-ММ-ДД"

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

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

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

Вам понадобится найти конкретный синтаксис для sqlite.