首页 > 解决方案 > Mysql - 将详细日期格式更改为 Ymd

问题描述

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

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

标签: mysqldatetype-conversion

解决方案


使用STR_TO_DATE,并使用当前文本日期使用适当的日期值更新此列。

UPDATE yourTable
SET new_date = STR_TO_DATE(old_date, '%b %e, %Y');

我的猜测是您使用了错误的格式掩码和/或您的某些文本日期有问题。这是一个简短的演示,表明上述逻辑有效。

演示


推荐阅读