Sqlite select с условием на дату
У меня есть таблица sqlite с датой рождения. Я хотел бы выполнить запрос, чтобы выбрать те записи, возраст которых превышает 30.
Я пробовал следующее, но он не работает:
select * from mytable where dob > '1/Jan/1980'
select * from mytable where dob > '1980-01-01'
Ответы
Ответ 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.