MySQL如何高效查询当月记录:方法与实例详解
要查询MySQL中的当月记录,核心方法是利用日期函数(如CURDATE()DATE_FORMAT()YEAR()/MONTH())结合条件筛选,其中关键是通过WHERE子句限定日期范围为当月的第一天到最后一天

假设表中有一个日期字段create_time,查询当月记录的常用语句如下:

mysql如何查询当月记录,高效查询当月MySQL记录

SELECT * FROM 表名 
WHERE YEAR(create_time) = YEAR(CURDATE()) 
  AND MONTH(create_time) = MONTH(CURDATE());

此方法通过YEAR()MONTH()函数提取日期中的年份和月份,并与当前日期(CURDATE())的年份月份对比,精准匹配当月数据

另一种高效方式是使用日期范围查询,直接定位当月首尾日期:

SELECT * FROM 表名 
WHERE create_time >= DATE_FORMAT(CURDATE(), '%Y-%m-01') 
  AND create_time < DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH);

这里通过DATE_FORMAT(CURDATE(), '%Y-%m-01')获取当月第一天,并利用DATE_ADD()计算下个月第一天作为范围上限,避免遗漏月末时刻的数据

注意事项

  1. 索引优化:若日期字段已建立索引,范围查询(第二种方法)通常效率更高,可加速大数据量检索。
  2. 时区处理:若数据库存储的是UTC时间,需用CONVERT_TZ()函数转换时区后再比对。

通过以上方法,可灵活应对不同场景下的当月记录查询需求,兼顾准确性与性能。

未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网

原文地址:https://www.html4.cn/16326.html发布于:2026-09-12