sqlite выберите с условием на дату - PullRequest
47 голосов
/ 22 февраля 2010

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

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

Ответы [ 3 ]

69 голосов
/ 22 февраля 2010

Можно использовать нечто подобное:

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');
21 голосов
/ 22 февраля 2010

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

select * from mytable where dob < date('now','-30 years');
5 голосов
/ 22 февраля 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...