MySQL按日期获取最接近的值

标签 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() 但我没有明白。还是有其他方法可以做到这一点?

提前致谢。

最佳答案

尝试使用:

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()))

关于MySQL按日期获取最接近的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36125696/

相关文章:

mysql - 从只有 1 列的表中删除重复行?

php - 航海者 php artisan 航海者 :install --with-dummy error

mysql - 正确、仔细地设置 MySQL 触发器语法

javascript - 如何仅使用 jquery 在 datepicker 中设置特定时区?

Java - 序列化/反序列化日期时出错

sql - 在 FULL JOIN 中添加多列,假设空行为零

mysql - 连接具有不同可变大小的 ID 的表

java - 我该怎么做才能将日期发送到光标?

MySQL 用 CASE 连接 4 个表

MySQL如何连接到空表?