Mysql-将详细日期格式更改为Y-m-d

Mysql-将详细日期格式更改为Y-m-d,mysql,date,type-conversion,Mysql,Date,Type Conversion,我正在做一个项目,它显然是由一个完全的初学者完成的。日期以“2010年1月20日”的格式存储在varchar列中。我需要将此列转换为日期或日期时间,但当我这样做时(在备份中),值变为0000-00-00 在使用str\u to\u date()和date()函数更改列类型之前,我尝试将值转换为正确的格式,但这两个函数都报告无效的字符串格式。是否可以将此数据转换为有效的日期格式?使用STR_to_date,并使用当前文本日期用正确的日期值更新此列 UPDATE yourTable SET new_

我正在做一个项目,它显然是由一个完全的初学者完成的。日期以“2010年1月20日”的格式存储在
varchar
列中。我需要将此列转换为
日期
日期时间
,但当我这样做时(在备份中),值变为
0000-00-00


在使用
str\u to\u date()
date()
函数更改列类型之前,我尝试将值转换为正确的格式,但这两个函数都报告无效的字符串格式。是否可以将此数据转换为有效的日期格式?

使用
STR_to_date
,并使用当前文本日期用正确的日期值更新此列

UPDATE yourTable
SET new_date = STR_TO_DATE(old_date, '%b %e, %Y');
我的猜测是,要么你使用了错误的格式掩码,要么你的一些文本日期有问题。下面是一个简短的演示,演示了上述逻辑的工作原理

改用这个

UPDATE table_name
SET DATES =  DATE_FORMAT(DATES, '%Y-%m-%d');
我建议使用另一列存储更新的日期值。即:
updatetb\u date set new\u date\u column=date\u格式(date\u column,%y-%m-%d')


看看吧,希望它对你有用。

啊。我想你需要提供你想要的格式。你的代码可以工作。谢谢