示例:?
比如现在是2024年 1月, 我们想查询最近12个月的数据。
那么就是 2024-01 的数据,以及 2023-02 到2023-12的数据,一共12个月数据。
ps: 当然起始我们能自然而然拿到最近12个月的起始和结束时间,那么开闭区间怎么用是取决于我们自己。
那么我们通过sql怎么实现呢??
① 拿到 最近12个月的起始结束时间
② 使用时间比较大小区间取数即可
①
最近12个月
起始时间 :?DATE_SUB(CURDATE(), INTERVAL 12 MONTH)
结束时间? :??DATE_ADD(CURDATE(), INTERVAL -1 DAY)
SELECT DATE_SUB(CURDATE(), INTERVAL 12 MONTH),DATE_ADD(CURDATE(), INTERVAL -1 DAY);
②
因为我要的是月维度,所以我直接切7个数,刚好到月,用来比大小,即可。
SELECT id,create_time, 业务字段?FROM ?你的表?
WHERE ?LEFT(create_time,7) > LEFT(DATE_SUB(CURDATE(), INTERVAL 12 MONTH) ,7)
AND LEFT(create_time,7) <= LEFT(DATE_SUB(CURDATE(), INTERVAL -1 DAY) ,7)
好了就到这。