首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQL alter table并将数据从文本转换为日期时间

MySQL alter table并将数据从文本转换为日期时间
EN

Stack Overflow用户
提问于 2013-11-19 22:20:14
回答 2查看 7.5K关注 0票数 6

我有一个包含date列的表,但它被存储为文本。

现在我需要根据date提取数据,并且我想我需要将列类型更改为datetime,但是如何才能在不丢失数据的情况下做到这一点?我的文本记录格式为dd-MM-YYYY hh:mm

如果我只是改变列的类型,数据就会丢失(它是用零填充的)。

EN

回答 2

Stack Overflow用户

发布于 2013-11-19 22:25:08

您可以创建一个DATETIME类型的新列,然后使用TEXT列中的datetime转换函数更新它。

更新此字段后,您可以使用新字段中的数据更改旧字段,然后删除为存储临时数据而创建的字段。

票数 3
EN

Stack Overflow用户

发布于 2015-01-21 01:46:44

你们两个都有正确的答案,但我不得不对它进行更多的调整才能让它为我所用。

我最初将列date设置为具有以下文本行的TEXT格式:

Tue Aug 20 9:52:13 EDT 2013

我所做的事情如下所示:

1)使用DATETIME格式创建了一个名为date_transformed的新列

2)运行以下代码:

代码语言:javascript
复制
UPDATE `table`
SET `date_transformed` = STR_TO_DATE(`date`,'%a %b %d %H:%i:%S EDT %Y')

执行此操作时,MySQL会将日期从一列复制到另一列,并转换为日期格式的列。然后,您可以根据需要重命名该列,并删除不再需要的旧列。我希望这能帮到你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20073973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档