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

MySQL字符串日期转完整月份名称返回NULL的解决方法求助

解决方法

你的问题出在STR_TO_DATE的格式参数与原字符串格式不匹配,导致转换失败返回NULL,进而让DATE_FORMAT也输出NULL。

原字符串是"1/5/2019"(月/日/年),正确的处理步骤是:

  1. 先用%m/%d/%Y格式把字符串转成日期类型;
  2. 再用DATE_FORMAT的%M参数提取完整拼写的月份名称。

正确查询语句

仅获取完整月份名称:

SELECT DATE_FORMAT(STR_TO_DATE(`date`, '%m/%d/%Y'), '%M') AS full_month_name
FROM `supermarket_sales`;

如果需要同时保留格式化后的日期和月份名称:

SELECT 
  STR_TO_DATE(`date`, '%m/%d/%Y') AS formatted_date,
  DATE_FORMAT(STR_TO_DATE(`date`, '%m/%d/%Y'), '%M') AS full_month_name
FROM `supermarket_sales`;

错误原因说明

你之前的查询中,STR_TO_DATE(date,'%d %M %Y')使用的格式符是“日 月份全称 年”,和原字符串的“月/日/年”格式完全不符,所以转换失败返回NULL,后续的DATE_FORMAT无法处理NULL值,最终输出NULL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:20:55