MySQL按日期获得最接近的值

时间:2016-03-21 07:58:32

标签: mysql date join

我有下表,我每周存储客户数

| area    | date       | count |
|---------|------------|-------|
| AREA I  | 2016-03-20 | 530   |
| AREA I  | 2016-03-13 | 520   |
| AREA II | 2016-03-20 | 370   |

现在我想在另一张桌子上按日期值获取最近的客户数。所以,如果我给f.ex.日期2016-03-15它应该为AREA I返回520,为AREA II返回370。

示例查询:

SELECT a.period, a.area, b.customerCount FROM periods a
JOIN customer_count b ON (...)
GROUP BY a.period, a.area

我认为我应该以某种方式使用ABS()DATEDIFF(),但我没有得到。或者还有其他方法可以做到这一点吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

尝试使用:

SELECT a.period, a.area, b.customerCount FROM periods a
JOIN customer_count b ON (...)
GROUP BY a.period, a.area
ORDER BY ABS(DATEDIFF( `date`, NOW()))