减去where子句中的日期

时间:2010-12-10 15:13:21

标签: sql mysql date

我需要在今天开始的过去60天做出选择。 例如:

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

?1是今天日期的参数。

我不能让它发挥作用,我做错了什么?

我使用MySQL

2 个答案:

答案 0 :(得分:1)

我认为这就是你想要的。

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

请注意BETWEEN包含在内。

注意,如果您的expire_datedatetime字段而不是date字段,则可能需要稍微修改一下(即CONCAT()适当的时间字符串关于BETWEEN的RHS的引用,或者在DATE()的LHS周围抛出BETWEEN(但是那时你将不再使用expire_date上的索引,假设那里是一个。

答案 1 :(得分:0)

看看这个:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-sub

获取更多帮助:日期为BETWEEN dateX和date_sub(dateX,60days)。我想你想要的是什么?

相关问题