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

标签 mysql date type-conversion

我正在开发一个项目,该项目显然是由一个完全的初学者构建的。该日期以“2010 年 1 月 20 日”格式存储在 varchar 列中。我需要将此列转换为 DATEDATETIME 但当我这样做时(在备份上),值会变为 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/

相关文章:

php - 为什么在 Laravel 5.2 中显示没有变量值的空页面

date - Kettle数据整合: dates always blank on excel output or excel writer

Java 'Date' 对象大小

html - 用户如何使输入类型日期为空?

c - 如何键入用数字初始化的巨大数组的强制转换元素

ios - Swift 4 - 通用类型转换问题 - 无法转换为预期类型 '(_) -> Void'

c - 如何在没有警告的情况下处理这些 typedef?

mysql - 后跟 SELECT LAST_INSERT_ID 时 INSERT 不起作用

php - 在 Openshift 云托管上安装 Osclass

mysql - 重新更新sql麻烦