我有以下 MySQL 查询:
SELECT
CONVERT_TZ(date1, '+0:00', '-7:00') as date,
sum(base_subtotal) as `base_subtotal`
FROM sales
WHERE date1 > (NOW() - interval 90 DAY)
GROUP BY DAY(date)
ORDER BY date DESC;
尽管提取了 90 天的数据,MySQL 只返回任何特定日期间隔的 30 天尾部。因此,如果今天是 6 月 11 日,我使用 “interval 30 day”
命令提取请求,我将获得从现在到 30 天前的所有日期。但是,如果我对 60 天命令执行相同的操作,我会得到 30 天前的日期,从一个月前开始,换句话说,我得到的日期介于 4 月 14 日和 5 月 11 日之间,但奇怪的是还有 5 月 31 日。
每天的总计也开始变大,当我运行特定月份的代码来验证总计时,假设我使用命令 "HERE Date(date1) BETWEEN '2018-05-01 ' AND '2018-05-31'"
我得到不同的值。
我做错了什么?我在 Java 中阅读了一些关于“溢出”错误的内容,但不确定这是怎么回事。我只想查看过去 90 天每天的销售总数。
最佳答案
可以在这一行看到问题:
GROUP BY DAY(date)
由于天不能小于 1 或大于 31 并且它们是相同的,因此如果您想获得更多结果,则需要按日期分组。
关于mysql - 超过30天不能查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50805827/