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

MySQL更新DATE字段报错:无法在FROM子句使用目标表求助

解决MySQL更新日期字段的报错问题

你不需要用子查询来完成这个更新操作,直接在SET语句里调用STR_TO_DATE函数即可——UPDATE操作本身可以直接访问当前行的RegistrationDate字段:

UPDATE arizona_oct24_vr
SET regdate = STR_TO_DATE(RegistrationDate, '%m/%d/%Y');

原查询报错的原因

你之前写的子查询(SELECT STR_TO_DATE(RegistrationDate, '%m/%d/%Y') FROM arizona_oct24_vr)会返回整个表所有行的转换结果,没有和当前要更新的行做关联;同时MySQL不允许在UPDATE的SET子句子查询中直接引用被更新的表,这会引发歧义或数据一致性问题。直接使用字段转换函数就能完成单表的逐行更新,逻辑更清晰也更高效。

如果需要提前验证转换结果是否正确,可以执行以下查询确认:

SELECT RegistrationDate, STR_TO_DATE(RegistrationDate, '%m/%d/%Y') AS converted_regdate
FROM arizona_oct24_vr;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 01:42:01