2011-06-02 75 views
0

我有这个功能,但我希望用户能够搜索1到2个月后,或6和19个月,或任何其他。两个相对日期之间的查询,MySQL

$query =  
"SELECT * FROM reports 
WHERE date > DATE_SUB(NOW(), INTERVAL ".$dateMax." MONTH)" 

我找不到任何有关将NOW函数更改为相对日期的文档。任何帮助,将不胜感激。

喜欢的东西:

$query =  
"SELECT * FROM reports 
WHERE date > DATE_SUB(NOW() - ".$dateMin." MONTH, INTERVAL ".$dateMax." MONTH)" 

将是真正伟大的,但它只是不工作。

回答

1
$query = " 
SELECT 
    * 
FROM 
    reports 
WHERE 
    date BETWEEN (CURRENT_DATE - INTERVAL $dateMin MONTH) AND (CURRENT_DATE - INTERVAL $dateMax MONTH); 
"; 

另一种选择将是一个日期,而不是CURRENT_DATE:

date BETWEEN ('2009-08-01' - INTERVAL $dateMin MONTH) AND ('2008-08-01' - INTERVAL $dateMax MONTH);