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

如何在MySQL中将‘202109’格式的字符串转换为‘2021-09’格式

错误原因说明

  • STR_TO_DATE函数的第二个参数是输入字符串的匹配格式,你输入的'202109'是无分隔符的%Y%m格式,传入'%Y-%m'和输入串匹配不上,自然解析失败。
  • MySQL原生的DATE()函数仅支持1个日期参数,你传入2个参数本身就属于语法错误,执行必然报错。

正确实现方案

方案1:日期类型转换方案(适合需要后续做日期计算的场景)

先用STR_TO_DATE把输入串解析为合法日期,再用DATE_FORMAT按目标格式输出即可,写法如下:

SELECT DATE_FORMAT(STR_TO_DATE('202109', '%Y%m'), '%Y-%m');

注:STR_TO_DATE解析只有年月的串时会自动补全当月1号作为日期部分,不会影响最终年月的格式化结果

方案2:纯字符串拼接方案(适合仅做格式转换的场景)

不需要转日期类型,直接截取字符串拼接分隔符即可,性能更高:

SELECT CONCAT(LEFT('202109',4), '-', RIGHT('202109',2));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:39:02