MySQL + PHP选择所有行,其日期介于今天和未来两周之间

时间:2012-06-18 05:12:24

标签: php mysql date

我有一个MySQL表,看起来像这样:

+-----+------------+
| id  | enddate    |
+------------------+
| 1   | 2012-06-30 |
+------------------+
| 2   | 2012-07-05 |
+------------------+
| 3   | 2012-07-02 |
+------------------+

在我的网站上,我想打印出日期介于以下范围内的所有行:

今天的日期(我的意思是不是固定的,而是日期当查询正在运行时)提前2周

因此,使用上面的例子只会打印第1行和第3行。

有人为此得到了解决方案吗?

2 个答案:

答案 0 :(得分:5)

我认为您需要BETWEEN比较运算符和一些简单的日期函数:

WHERE enddate BETWEEN CURDATE() AND ADDDATE(CURDATE(), INTERVAL 14 DAY);

http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html#operator_between

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_adddate

答案 1 :(得分:1)

您可以使用

WHERE enddate BETWEEN CURDATE() AND ADDDATE(CURDATE(), INTERVAL 2 WEEK);

Reference