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

MySQL将年、月、日字段合并为同表日期字段的语法问题

解决MySQL中合并年月日字段到date字段的语法问题

嘿,你碰到的语法错误根源很明确——MySQL不支持UPDATE ... FROM这种写法,这是SQL Server这类数据库的语法规则,MySQL里直接操作目标表就可以啦。

正确的UPDATE语句写法

直接去掉多余的FROM setlists部分,就能正常执行:

UPDATE setlists 
SET date = STR_TO_DATE(CONCAT(year, '-', month, '-', day), '%Y-%m-%d');

优化建议:补全月日的前导零

如果你的month或day字段是个位数(比如5月存成5而非05),虽然STR_TO_DATE也能识别%Y-%m-%d格式,但为了更严谨,你可以用LPAD函数补全前导零,确保转换后的日期完全符合标准格式:

UPDATE setlists 
SET date = STR_TO_DATE(
    CONCAT(year, '-', LPAD(month, 2, '0'), '-', LPAD(day, 2, '0')), 
    '%Y-%m-%d'
);

执行前先验证转换结果

为了避免更新出错,建议先执行SELECT语句确认转换后的日期是否正确:

SELECT 
    year, month, day,
    STR_TO_DATE(CONCAT(year, '-', month, '-', day), '%Y-%m-%d') AS converted_date
FROM setlists;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:55:17