You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中从字符串类型列提取日期并按年份进行分组?

实现方案

你可以先通过STR_TO_DATE函数将text类型的日期字符串转换为MySQL日期格式,再用YEAR()提取年份后分组即可,适配你给出的月/日/年 时:分格式的SQL示例如下:

-- 替换为你实际的表名,示例是统计每年的航班记录数,可根据需求修改聚合逻辑
SELECT YEAR(STR_TO_DATE(FlightDate, '%c/%e/%Y %k:%i')) AS flight_year, COUNT(*) AS flight_count
FROM 你的表名
GROUP BY flight_year;

格式符说明:

  • %c:匹配不带前导零的月份(适配示例中的7、10格式)
  • %e:匹配不带前导零的日期(适配示例中的25、2格式)
  • %Y:匹配4位数字的年份
  • %k:匹配不带前导零的24小时制小时
  • %i:匹配分钟

异常兼容版本

如果表中存在不符合上述格式的脏数据,可增加校验条件避免转换报错:

SELECT YEAR(STR_TO_DATE(FlightDate, '%c/%e/%Y %k:%i')) AS flight_year, COUNT(*) AS flight_count
FROM 你的表名
WHERE STR_TO_DATE(FlightDate, '%c/%e/%Y %k:%i') IS NOT NULL
GROUP BY flight_year;

内容的提问来源于stack exchange,提问作者sparklyCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:24:02