MySQL如何查询当天最大记录:高效获取当日峰值数据
要查询MySQL中当天的最大记录,核心方法是结合MAX()聚合函数与CURDATE()或DATE()函数来筛选当天数据,若需获取当天sales表中的最高销售额,可使用以下语句:

SELECT MAX(amount) AS max_amount FROM sales WHERE DATE(created_at) = CURDATE();
此查询通过DATE(created_at) = CURDATE() 精准限定时间范围为当天,再以MAX(amount) 计算该范围内的最大值,确保结果实时且准确。
关键操作解析
-
时间范围限定:
- 使用
CURDATE()获取当前日期(不含时间),或通过DATE()函数提取日期部分。 - 若字段含时间戳,推荐用
DATE(created_at)转换后比较,避免时间部分干扰。 - 优化场景中,可改用
created_at >= CURDATE() AND created_at < CURDATE() + INTERVAL 1 DAY,利用索引提升查询效率。
- 使用
-
聚合函数应用:
MAX()函数直接返回指定字段的最大值,适用于数值、日期等可排序数据。- 若需同时获取最大值对应的其他信息(如订单号),可结合子查询或
JOIN:SELECT * FROM sales WHERE amount = (SELECT MAX(amount) FROM sales WHERE DATE(created_at) = CURDATE());
实践注意事项
- 索引优化:对时间字段(如
created_at)建立索引,可大幅加速范围查询。 - 时区处理:若数据库时区与业务时区不一致,需用
CONVERT_TZ()函数转换时间。 - 空值处理:当天无数据时,
MAX()返回NULL,建议用IFNULL()设置默认值。
通过以上方法,可灵活应对“查询当天最大销售额、最高温度记录”等场景,兼顾准确性与性能。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/12968.html发布于:2026-08-25





