MySQL日期格式需要从数据类型更改为文本

MySQL date format change needed from data type as text

提问人:Dejack 提问时间:9/23/2023 最后编辑:sotirovDejack 更新时间:9/23/2023 访问量:30

问:

我有一个从 Kaggle 收集的数据集,其中有一个名为 where its data type is 的列。例:。DOBTEXTJan 30,2000

我想将该特定列的日期格式更改为 .30-01-2000

我怎样才能进行这种更改?

我尝试将数据格式从文本更改为数据,并使用date_format(columnname,%d-%m-%y)

sql mysql 日期格式

评论

0赞 The Impaler 9/23/2023
"...其中,它的数据类型是 TEXT..“ -- 首先要做的事情是:将其解析为适当的列。日期没有格式;格式化只是渲染的一部分,同时将其显示给最终用户。DATE
0赞 Dejack 9/23/2023
我该如何更改它?

答:

0赞 Barmar 9/23/2023 #1

用于解析当前格式,并生成新格式:STR_TO_DATE()DATE_FORMAT()

UpDATE yourTable
SET columnname = DATE_FORMAT(STR_TO_DATE(columnname, '%b %d,%Y'), '%d-%m-%Y'))

理想情况下,您不应该将日期存储在文本列中,您应该使用 或 .格式化应在 UI 中完成,而不是在原始数据中完成。它也更有效率,因为它是以数字形式存储在内部的。DATEDATETIME

评论

0赞 Dejack 9/23/2023
我相信下面的查询会根据您上面所说的内容起作用,更新players_wc DATE_FORMAT(STR_TO_DATE(Player_DOB, '%b %d,%Y'), '%d-%m-%Y'));其中 player_wc 是表名
0赞 Barmar 9/23/2023
你不见了.我已经更新了答案。SET Player_DOB =
0赞 Dejack 9/23/2023
谢谢,这些更改奏效了。我现在可以将数据类型从文本更改为 dat 吗?
0赞 Barmar 9/23/2023
如果要这样做,则应使用格式。%Y-%m-%d
0赞 Dejack 9/23/2023
承认先生。