MySQL Workbench中VARCHAR转DATE字段返回NULL的问题求助
VARCHAR类型created_at转DATE字段返回NULL的解决方法
- 问题根源:
STR_TO_DATE()的格式模板与created_at字段的实际文本格式不匹配,导致转换失败返回NULL。 - 第一步:确认
created_at的实际格式,执行SQL查看样本数据:SELECT created_at FROM user123 LIMIT 5; - 第二步:根据实际格式调整
STR_TO_DATE()的模板参数:- 若
created_at格式为YYYY-MM-DD,更新语句改为:UPDATE user123 SET new_date = STR_TO_DATE(created_at, '%Y-%m-%d'); - 若为
MM/DD/YYYY,使用'%m/%d/%Y';若为DD/MM/YYYY,才用你原来的'%d-%m-%Y',以此类推。
- 若
- 第三步:验证转换结果,确认非空数据的转换是否正确:
SELECT created_at, new_date FROM user123 WHERE new_date IS NOT NULL LIMIT 5; - (可选)完成转换后,可替换原字段:
ALTER TABLE user123 DROP COLUMN created_at; ALTER TABLE user123 CHANGE COLUMN new_date created_at DATE;
内容的提问来源于stack exchange,提问作者Pritesh Shakya
相关产品推荐
相关产品推荐

