我正在开发一个项目,该项目显然是由一个完全的初学者构建的。该日期以“2010 年 1 月 20 日”格式存储在 varchar
列中。我需要将此列转换为 DATE
或 DATETIME
但当我这样做时(在备份上),值会变为 0000-00-00
>.
在使用 str_to_date()
和 DATE()
函数更改列类型之前,我尝试将值转换为正确的格式,但两者都报告无效的字符串格式。是否可以将此数据转换为有效的日期格式?
最佳答案
使用STR_TO_DATE
,并使用当前文本日期用正确的日期值更新此列。
UPDATE yourTable
SET new_date = STR_TO_DATE(old_date, '%b %e, %Y');
我的猜测是您使用了错误的格式掩码和/或某些文本日期有问题。这是一个简短的演示,显示上述逻辑是有效的。
Demo
关于Mysql - 将详细日期格式更改为 Y-m-d,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55057182/