MySQL 如何只查询年月?DATE_FORMAT与EXTRACT函数详解
在 MySQL 中,要从日期或时间类型的字段中只查询出年份和月份,核心方法是使用 DATE_FORMAT() 函数或 EXTRACT() 函数。

DATE_FORMAT() 函数是最直接、灵活的方式,它允许你将日期按照指定的格式输出为字符串,若你有一个名为 create_time 的日期时间字段,只需执行 SELECT DATE_FORMAT(create_time, '%Y-%m') FROM table_name; 即可得到像“2024-07”这样的年月结果,这里的 '%Y-%m' 是格式符,%Y 代表四位年份,%m 代表两位月份。
另一种方法是使用 EXTRACT() 函数组合,它可以分别提取日期的特定部分并合并:SELECT CONCAT(EXTRACT(YEAR FROM create_time), '-', LPAD(EXTRACT(MONTH FROM create_time), 2, '0')) FROM table_name;,虽然稍显繁琐,但能确保获取独立的数值组件。
对于仅需按年月分组统计的场景,直接在 GROUP BY 子句中使用上述函数非常高效,SELECT DATE_FORMAT(create_time, '%Y-%m'), COUNT(*) FROM table_name GROUP BY DATE_FORMAT(create_time, '%Y-%m');,如果对查询性能有更高要求,尤其是表中数据量较大时,可以考虑为日期字段创建函数索引或生成额外的虚拟列来优化这类基于函数的查询。
根据需求选择 DATE_FORMAT(适合直接显示)或 EXTRACT(适合数值计算),便能轻松实现 MySQL 中只查询年月的操作。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/14126.html发布于:2026-09-01





