Вычитание даты в пункте где - PullRequest
1 голос
/ 10 декабря 2010

Мне нужно сделать выбор за последние 60 дней, начиная с сегодняшнего дня.Например:

select * from product
where product.expire_date = ?1 - 60

? 1 - это параметр с сегодняшней датой.

Я не могу заставить его работать, что я делаю не так?

Я использую MySQL

Ответы [ 2 ]

1 голос
/ 10 декабря 2010

Я думаю, это то, что вы хотели бы.

SELECT * 
FROM product
WHERE product.expire_date BETWEEN DATE_SUB(CURDATE(), INTERVAL 60 DAY) AND CURDATE()  

Обратите внимание, что BETWEEN включительно.

Примечание: если ваше expire_date является полем datetime, а не полем date, вам, возможно, придется изменить его немного (т. Е. CONCAT() соответствующие строки времени для ссылок на RHS *) 1011 *, или бросьте DATE() вокруг LHS BETWEEN (но тогда вы больше не будете использовать индекс на expire_date, предполагая, что он был.

0 голосов
/ 10 декабря 2010

Взгляните на это: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-sub

Для получения дополнительной помощи: ГДЕ дата МЕЖДУ dateX И date_sub (dateX, 60days). Я думаю, что ты хочешь правильно?

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