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

MySQL执行str_to_date函数报错1411:日期格式不匹配求助

问题排查与解决

错误原因

你使用的STR_TO_DATE格式串和实际日期格式不匹配:

  • 实际日期值是带横杠分隔的格式:26-09-2021(日-月-年,横杠分隔)
  • 但你传入的格式串是%d%m%Y,这个格式表示无分隔符的日+月+年(比如26092021),函数无法解析带横杠的日期,因此触发1411错误。

解决步骤

1. 修正格式串执行更新

将格式串改为带横杠的%d-%m-%Y,匹配实际日期的分隔符:

UPDATE h1b_data 
SET RECEIVED_DATE = STR_TO_DATE(RECEIVED_DATE, "%d-%m-%Y");

2. 排查并处理异常数据(推荐)

如果表中存在其他格式的日期值,直接执行更新可能仍会报错。先查询出所有无法用目标格式解析的记录:

SELECT RECEIVED_DATE 
FROM h1b_data 
WHERE STR_TO_DATE(RECEIVED_DATE, "%d-%m-%Y") IS NULL;

针对这些异常记录,先统一格式(比如手动修正或用字符串替换处理),再执行更新命令。

3. 安全更新(避免全表报错)

如果不确定所有记录格式是否一致,可以添加过滤条件,只更新能正常解析的记录:

UPDATE h1b_data 
SET RECEIVED_DATE = STR_TO_DATE(RECEIVED_DATE, "%d-%m-%Y")
WHERE STR_TO_DATE(RECEIVED_DATE, "%d-%m-%Y") IS NOT NULL;

内容的提问来源于stack exchange,提问作者Anushri D.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 17:47:04