如何用MySQL查询连续7天每日00:00-14:30的最值数据
修改MySQL查询语句实现多日每日统计
要实现2023-06-15至2023-06-22期间,每天00:00至14:30的最低值和最高值统计,你需要对原语句做以下核心调整:
- 按日期分组:通过
DATE(start_date)提取记录的日期部分,以此作为分组依据,确保每天生成一条独立的统计结果。 - 扩展日期范围:将原单天的日期条件替换为区间判断,覆盖目标的7天周期。
- 保留核心过滤逻辑:继续保留
cur_id=4和时间范围TIME(start_date) <= '14:30:00'的过滤规则。
修改后的完整语句如下:
SELECT DATE(start_date) AS record_date, MIN(low) AS lowestlow, MAX(high) AS highest FROM prices_15 WHERE cur_id = 4 AND DATE(start_date) BETWEEN '2023-06-15' AND '2023-06-22' AND TIME(start_date) <= '14:30:00' GROUP BY DATE(start_date) ORDER BY record_date;
补充说明:
record_date字段用于明确标识每条统计结果对应的日期,提升结果可读性。ORDER BY record_date确保结果按日期从小到大排序,方便查看趋势。- 如果业务场景中存在跨天的记录(比如某条记录
start_date在当天但end_date跨到次日),可按需添加DATE(end_date) = DATE(start_date)条件,确保只统计完全在当天范围内的记录。
内容的提问来源于stack exchange,提问作者Nicky Green
相关产品推荐
相关产品推荐

