我有一个包含date列的表,但它被存储为文本。
现在我需要根据date提取数据,并且我想我需要将列类型更改为datetime,但是如何才能在不丢失数据的情况下做到这一点?我的文本记录格式为dd-MM-YYYY hh:mm
如果我只是改变列的类型,数据就会丢失(它是用零填充的)。
发布于 2013-11-19 22:25:08
您可以创建一个DATETIME
类型的新列,然后使用TEXT
列中的datetime转换函数更新它。
更新此字段后,您可以使用新字段中的数据更改旧字段,然后删除为存储临时数据而创建的字段。
发布于 2015-01-21 01:46:44
你们两个都有正确的答案,但我不得不对它进行更多的调整才能让它为我所用。
我最初将列date
设置为具有以下文本行的TEXT
格式:
Tue Aug 20 9:52:13 EDT 2013
我所做的事情如下所示:
1)使用DATETIME
格式创建了一个名为date_transformed
的新列
2)运行以下代码:
UPDATE `table`
SET `date_transformed` = STR_TO_DATE(`date`,'%a %b %d %H:%i:%S EDT %Y')
执行此操作时,MySQL会将日期从一列复制到另一列,并转换为日期格式的列。然后,您可以根据需要重命名该列,并删除不再需要的旧列。我希望这能帮到你。
https://stackoverflow.com/questions/20073973
复制相似问题