У меня есть таблица с 5 столбцами, одним из которых является LastVisit (дата последнего посещения ресторана). Я хочу написать запрос, который вернет все рестораны, которые понравились, но не посещались более трех месяцев, но я делаю какую-то ошибку с функциями даты (я думаю).
Если я создаю базу данных и вставляю эти значения:
CREATE TABLE MyRestaurants(Name VARCHAR, Cuisine VARCHAR, Distance INTEGER, LastVisit VARCHAR, Enjoy INTEGER);
INSERT INTO MyRestaurants (Name, Cuisine, Distance, LastVisit, Enjoy)
VALUES ('Dakshin', 'Indian', 5, 2019-01-13, 1);
INSERT INTO MyRestaurants (Name, Cuisine, Distance, LastVisit, Enjoy)
VALUES ('Cactus', 'Mexican', 6, 2018-01-4, 1);
Тогда я делаю этот запрос:
SELECT Name
FROM MyRestaurants
WHERE Enjoy = 1 AND DATE(LastVisit) <= DATE('now', '-3 month')
ORDER BY Name;
Я ожидаю, что он вернет Кактус, но он вернет и Кактуса, и Дакшина.
Я нашел эту ветку: SQLite возвращают записи, где дата более недели
Но когда я пытаюсь> =, он не возвращает значений, когда я пытаюсь просто LastVisit вместо DATE (LastVisit), он не возвращает значений, а когда я пытаюсь использовать 90 дней вместо 3 месяцев, он не возвращает значений. Я не понимаю, что я делаю не так.