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

MySQL中使用str_to_date遇1292截断警告的问题咨询

解决MySQL STR_TO_DATE转换时的1292截断警告

问题原因

你的reportdate字段值末尾带有时区后缀+00,但使用的格式串%Y/%m/%d %H:%i:%s仅匹配到时间部分,无法覆盖时区后缀,MySQL会自动截断这部分不匹配的内容,从而触发1292警告。

解决方案

方案1:匹配完整字符串格式

修改STR_TO_DATE的格式串,加入时区匹配符%z,完整匹配带时区的字符串:

SELECT reportdate, STR_TO_DATE(reportdate,'%Y/%m/%d %H:%i:%s%z') AS date FROM dc_crash_data_tst LIMIT 5;

如果需要更新表字段(假设目标字段为datetime_column),可执行:

UPDATE dc_crash_data_tst 
SET datetime_column = STR_TO_DATE(reportdate,'%Y/%m/%d %H:%i:%s%z');

方案2:先截取有效时间部分

如果不需要时区信息,先用LEFT函数截取字符串的前19位(即YYYY/MM/DD HH:MM:SS部分),再进行转换:

SELECT reportdate, STR_TO_DATE(LEFT(reportdate, 19),'%Y/%m/%d %H:%i:%s') AS date FROM dc_crash_data_tst LIMIT 5;

对应的更新语句:

UPDATE dc_crash_data_tst 
SET datetime_column = STR_TO_DATE(LEFT(reportdate, 19),'%Y/%m/%d %H:%i:%s');

效果验证

执行修正后的语句后,不会再出现1292截断警告,转换结果保持正确,同时可正常执行后续表更新操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:30:44