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

MySQL中DATE_FORMAT转换日期返回NULL 如何将31-Mar-2022转为2022-03-31

问题原因

语句返回NULL是因为DATE_FORMAT()函数的第一个参数必须是MySQL可识别的DATE/DATETIME类型值,直接传入"31-Mar-2022"格式的字符串时,MySQL无法自动将其解析为合法日期,因此返回空值。

正确写法

需要先通过STR_TO_DATE()函数把原始格式的字符串解析为合法日期,再做格式转换:

SELECT DATE_FORMAT(STR_TO_DATE('31-Mar-2022', '%d-%b-%Y'), '%Y-%m-%d');

相关说明

  • 解析原始字符串用到的格式符:%d对应两位数字日期、%b对应英文缩写月份名、%Y对应四位数字年份
  • 输出目标格式用到的格式符:%Y-%m-%d对应四位年-两位月-两位日的标准日期格式
  • 如果执行时出现月份解析失败的问题,可以先执行SET lc_time_names = 'en_US';把时间语言设置为英文,保证缩写月份能被正常识别

执行上述语句后即可得到2022-03-31的目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 07:18:22