我创建了Query,它可以获取包含当前月份的前12个月数据。我想要从上个月开始的12个月。我不明白,所以任何人都可以帮助我。
create_data >= DATE_SUB(CURDATE(), INTERVAL 12 month)
答案 0 :(得分:1)
截至上个月的12个月:
create data between DATE_SUB(CURDATE(), INTERVAL 13 month)
and DATE_SUB(CURDATE(), INTERVAL 1 month)
答案 1 :(得分:1)
WHERE create_date >= CURDATE() - INTERVAL DAY(CURDATE() -1) DAY
- INTERVAL 12 MONTH
AND create_date < CURDATE() - INTERVAL DAY(CURDATE() -1) DAY
按DAY(CURDATE())
备份到上个月结束。
-1
是将其转移到本月的第一天。
- INTERVAL 12 MONTH
可以追溯到12个月。
使用>=
和<
可以防止在结束时多花一天或几秒钟。
检查:
SELECT NOW(),
CURDATE() - INTERVAL DAY(CURDATE() -1) DAY
- INTERVAL 12 MONTH AS start,
CURDATE() - INTERVAL DAY(CURDATE() -1) DAY
+---------------------+------------+------------+
| NOW() | start | end |
+---------------------+------------+------------+
| 2017-02-27 15:31:09 | 2016-02-01 | 2017-02-01 |
+---------------------+------------+------------+