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

MySQL中STR_TO_DATE报错:如何将VARCHAR日期转为yyyy-mm-dd?

解决VARCHAR日期转MySQL标准格式问题

你的错误根源是STR_TO_DATE函数的格式掩码和原始日期字符串不匹配,原始字符串是6/25/2024 5:19:22 PM这种月/日/年+12小时制时间的格式,需要对应正确的格式符。

正确的转换语句

如果你只需要提取日期部分转成yyyy-mm-dd格式(对应DATE类型),可以用以下语句:

UPDATE 你的表名
SET CreatedDate = DATE_FORMAT(STR_TO_DATE(CreatedDate, '%m/%d/%Y %h:%i:%s %p'), '%Y-%m-%d');

如果需要保留完整的datetime格式(转成yyyy-mm-dd hh:mm:ss),用这个:

UPDATE 你的表名
SET CreatedDate = STR_TO_DATE(CreatedDate, '%m/%d/%Y %h:%i:%s %p');

格式符说明

  • %m:两位数字的月份(01-12),兼容单数字月份(比如6)
  • %d:两位数字的日期(01-31)
  • %Y:四位数字的年份
  • %h:12小时制的小时(01-12)
  • %i:两位数字的分钟(00-59)
  • %s:两位数字的秒(00-59)
  • %p:AM/PM标识,自动匹配大小写(PM/pm都可识别)

后续优化建议

等所有数据转换验证正确后,建议把字段改回DATE或DATETIME类型,避免后续格式问题:

-- 转成DATE类型(仅存储日期)
ALTER TABLE 你的表名 MODIFY COLUMN CreatedDate DATE;

-- 或者转成DATETIME类型(存储日期+时间)
ALTER TABLE 你的表名 MODIFY COLUMN CreatedDate DATETIME;

内容的提问来源于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.18 18:28:14