【发布时间】:2020-03-07 15:03:48
【问题描述】:
我正在使用以下 MySQL 查询获取过去 13 个月的记录:
SELECT YEAR(`customer_date`),
MONTHNAME(`customer_date`),
COUNT(`customer_date`) AS Enquiries
FROM `crm_customers`
WHERE DATE(`customer_date`) BETWEEN CURRENT_DATE - INTERVAL 13 month AND
CURRENT_DATE
GROUP BY YEAR(`customer_date`),
MONTH(`customer_date`)
ORDER BY YEAR(`customer_date`) DESC,
MONTH(`customer_date`) DESC
我的原型 MySQL 表 crm_customers 看起来像:
customer_id customer_date
1 2019-02-01 00:00:00
2 2019-02-02 00:00:00
... ...
... ...
... ...
输出:
虽然上面的查询确实可以正常工作,并且给了我几乎正确的结果集,除了一个与去年最后一个月相关的问题,距今天 13 个月的差距。
今天是 2020 年 3 月 7 日。我上面查询中的日期条件
WHERE DATE(`customer_date`) BETWEEN CURRENT_DATE - INTERVAL 13 month AND CURRENT_DATE
从 2019 年 2 月 7 日开始获取结果。
在 2019 年 2 月,我有 104 个条目。但我上面的 SQL 仅获取 80 个条目,因为 24 个条目在 2019 年 2 月 7 日之前(2019 年 2 月 1 日至 2 月 6 日之间)。我也想包括这些条目。如何修改我的日期条件以达到所需的结果。
编辑
为什么这个问题被标记为否定?我不明白。问题非常清楚,没有重复。是被 GMB 否决了吗?
【问题讨论】:
-
你期望什么?数据之间的当前月份(2020-02)到 13 个月(2019-02)?或当前日期(2020-02-07)到 13 个月前的日期(2019-02-07)?
-
@Tushar 2019-02-01 到 2020-03-07 之间的数据
标签: mysql sql date where-clause